From 6abaffe12e08e3fe93dfe55aeeb7176ea1a3dbb6 Mon Sep 17 00:00:00 2001 From: yChaaby <113364055+yChaaby@users.noreply.github.com> Date: Fri, 12 Apr 2024 18:45:13 +0000 Subject: [PATCH 1/4] done with Fragment 0 --- AST/Bool.class | Bin 0 -> 845 bytes AST/Bool.java | 16 ++++ AST/Egal.class | Bin 0 -> 1016 bytes AST/Egal.java | 15 ++++ AST/FloatT.class | Bin 0 -> 847 bytes AST/FloatT.java | 22 +++++ AST/GrEgNb.class | Bin 0 -> 1020 bytes AST/GrEgNb.java | 15 ++++ AST/GrStNb.class | Bin 0 -> 1020 bytes AST/GrStNb.java | 15 ++++ AST/LoEqNb.class | Bin 0 -> 1020 bytes AST/LoEqNb.java | 15 ++++ AST/LoStNb.class | Bin 0 -> 1020 bytes AST/LoStNb.java | 15 ++++ AST/Modulo.class | Bin 0 -> 1016 bytes AST/Modulo.java | 11 +++ AST/Not.class | Bin 0 -> 1028 bytes AST/Not.java | 17 ++++ AST/NotEql.class | Bin 0 -> 1022 bytes AST/NotEql.java | 15 ++++ Compilateur.class | Bin 7086 -> 8192 bytes Compilateur.java | 158 ++++++++++++++++++++++++++-------- Compilateur.jj | 40 +++++++-- CompilateurConstants.class | Bin 583 -> 807 bytes CompilateurConstants.java | 16 +++- CompilateurTokenManager.class | Bin 5949 -> 7098 bytes CompilateurTokenManager.java | 133 +++++++++++++++++++++++----- 27 files changed, 439 insertions(+), 64 deletions(-) create mode 100644 AST/Bool.class create mode 100644 AST/Bool.java create mode 100644 AST/Egal.class create mode 100644 AST/Egal.java create mode 100644 AST/FloatT.class create mode 100644 AST/FloatT.java create mode 100644 AST/GrEgNb.class create mode 100644 AST/GrEgNb.java create mode 100644 AST/GrStNb.class create mode 100644 AST/GrStNb.java create mode 100644 AST/LoEqNb.class create mode 100644 AST/LoEqNb.java create mode 100644 AST/LoStNb.class create mode 100644 AST/LoStNb.java create mode 100644 AST/Modulo.class create mode 100644 AST/Modulo.java create mode 100644 AST/Not.class create mode 100644 AST/Not.java create mode 100644 AST/NotEql.class create mode 100644 AST/NotEql.java diff --git a/AST/Bool.class b/AST/Bool.class new file mode 100644 index 0000000000000000000000000000000000000000..5e5fa457b11b347d541402c3ef507b8fbce23e45 GIT binary patch literal 845 zcmaKq;Z74l5Xb-9mR@_D6c9v2p<vPLY3u{kXv#&RN!1T+Fu_mTb^}MRyUp#E$eZ{W znrJk9@Bw@%<7|6@QyV|r?(EEOX8*G{KYv~R0Pq}-UF48=Q1GyTB15Is={8<`7$-vO zNXZsM@o6L@^Nb<y*N@65q3po*un3Q#Wa$H?Vv5Sih=CouSVG0YvWFF{GOV2ObKZ!# zJehKWOUg2;W0FXoFs%E>_4YL~b2nE>+M0)TTVP|vhayz6&&|8YoRXytmqs%bDEElA zPz?kLZ%0zRnT&cO>GEDoo;80?X$IG*meyj_i!bQVQIn)E4kMdTww*k&Y8aNuHrgb7 z{92e(HPDqJc3f1k>tN4HyU$R&79PoSH584R{+ZfC-Zv_tJ3jiE4pVSe^d*;rSm;_? zso`YY%wXw5WITT)b}z<a4*ovFzwMogzG-HkAT1H{IPOG7G)vg0rbBJSfvPf>!Fwg8 zNWz%Y`)CI~!~Q=l&QtCnVA%dYN`o|O6T37+Ir_siEq02?%9FK#TeNP_DWIs0yTLcG zVCyTK&r|v~txLoLMHJw`&LRyMHq*Q+?Tn(O;0v7Zxbf*Kt2p&9(t78L-b-oM(wDdi g{LS0Dwx~u9cX7|wrHpO*YIr~=m#l}V;}JH01Eq_^)Bpeg literal 0 HcmV?d00001 diff --git a/AST/Bool.java b/AST/Bool.java new file mode 100644 index 0000000..2765264 --- /dev/null +++ b/AST/Bool.java @@ -0,0 +1,16 @@ +package AST; + +public class Bool extends ExpressionA { + public boolean num; + + public Bool(boolean num) { + this.num = num; + } + + public String toString() { + return Boolean.toString(num); + } + public String toAssembly() { + return "CsteBo " + num+"\n"; + } +} diff --git a/AST/Egal.class b/AST/Egal.class new file mode 100644 index 0000000000000000000000000000000000000000..099ce227fa25c5136e87e1f9defce753aa629523 GIT binary patch literal 1016 zcmaJ<U2hUW6g>l!UDmBoL~E_BR;dET;>U{#MnegWCa4b(eel5yFo7-04DJq%{1bnM zCdMXx@CW##jCWk32*hl5?#!KYKhB-=<LCKz0MGEqK@4#V2^VWfGHljb?Mmb0I1pjz zDOr1e<Vo%Yf+6|Dlb(LcuwQ5{fT~N5;u{+_#WX%lxF4qA;DQC$#X2rB*uTU3+$TVv zPr3ujzOj_TK?WNZvMw$m$B<sA$>3;J3qvvL_)~^lq1Zg(r@Z2G*{`&8;K_c~)V<<j z(-cki0_ACuCDvOmu3?+Fj`&d2mF#l;*3$#pg_=tpGCVFUCtLQcsA#6S<6_rzY-<(u z!H}q{9+6BpJt<yIMja8fdB-P@6;4MTWp++WO@gjC_RJyGpy?bMJ`9;7rF5tRK7J|m zK=s0O5_cTjMZrSRFex$Q|5EqlsTzve1R`?BysK3}L;5sNYX*#xKIgLMi!k3*YB(8J zm$}Y){t0YP$6^Ki-5maP=R|aMb$(j26m{<VEqauyjWUsDERu`E;J%Pj1a+U&1BVtW zq`D=Ft2(#vfMNIlP|`v~6MLkO7zqMMfEoSMdV@~45vLEZN(bdLurIV_xJhdSPZH1~ z&mMBKfNipj?&DeO^B=IuW<r<|Fs&wYnd%vDuJjeDZ%C85Oy(R{fyK!6Ow9;s7P&*# lM6Q+2aD5SK+Py`WF={<e)+Xpa{Rg;5C)2_q?&Bf0egTgZ@`C^X literal 0 HcmV?d00001 diff --git a/AST/Egal.java b/AST/Egal.java new file mode 100644 index 0000000..4a61e07 --- /dev/null +++ b/AST/Egal.java @@ -0,0 +1,15 @@ +package AST; + +public class Egal extends ExpressionA_Binaire { + + public Egal(ExpressionA gauche, ExpressionA droite) { + super(gauche, droite); + } + + public String symbole() { + return "Equals"; + } + public String toAssembly() { + return gauche.toAssembly() + droite.toAssembly() + "Equals\n"; + } +} diff --git a/AST/FloatT.class b/AST/FloatT.class new file mode 100644 index 0000000000000000000000000000000000000000..a17f71ac6dfb33e7fda3c10b0f23021dcc80644d GIT binary patch literal 847 zcmaKq&u-H|5XQev(l~M5CM_wY{3&UhLShhkfS{rfVSyCNAyGMSS|_X4jk6nhHx+#o z9s?v0s0SW^he93KR%;;Q;N97o-#0t6o?pK&egb%br#5oPTPQeKLXn};9SqyAKF%Vc zb)aOIq4+$IfjMBvH(N(#lu)){J6MLpV8^r<DsF}p=g~0(^K7i5Vxj6_4eONgl%Mf- z$mMZDGL(!Om?)4$Z#2DD{{~3hopma$=3pb1Z%+9{^pqTN^FA;qWNE{t(F_IB9?{lQ zV?o#S11S#YQ(r_w?uX>5H5a6&nvLpeEv9~WPKSY-M<d|{v0ypr<XKz~L-nOnMw^Jw z-U@S~#=26(LmPGMSlEq=+hb_llpe@4H4*KkgQQ-MkBo}wmQT%0k13cWea+=K6uQw@ zYBHa7GFbW)8P6ZW;rUD~z&~X8cmAmunNIc*(iA-&hJ(O}P6_)A<(@X;(62L_!FeO4 zh<YKX7t$7*4Ez7IxTtaqF2nZ!Q5vPBP3+JV<>(*Nw8V2nR-UXS+@^JtPA)~`xb1!i zbN9Z%`f^3zp>>s5kg7nsGFC{jhOJarr=3x><bH+q11q1eRmCfRmDao0^lnPqF@1qs hz~6k0?z%@ga=4ENab8kv)7QWwI@x4BMhj1{bqVdC#a93T literal 0 HcmV?d00001 diff --git a/AST/FloatT.java b/AST/FloatT.java new file mode 100644 index 0000000..ae7215b --- /dev/null +++ b/AST/FloatT.java @@ -0,0 +1,22 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +package AST; + +public class FloatT extends ExpressionA { + public float arg; + + public FloatT(float var1) { + this.arg = var1; + } + + public String toString() { + return Float.toString(this.arg); + } + + public String toAssembly() { + return "CsteNb " + this.arg + "\n"; + } +} diff --git a/AST/GrEgNb.class b/AST/GrEgNb.class new file mode 100644 index 0000000000000000000000000000000000000000..6d14eac0ef889fed381f6949537e9a84158b9241 GIT binary patch literal 1020 zcmaJ=U2hUW6g^WY3)`(wL~E_BR;dET;>U{#Mng%fCWsFZeel7|!UVP~Gq^i6@=yF3 zni!k(!5`p{GTzA&MIdIgb7$_Hd+t4V@BaLC@dLnfJhridn1#55RU{ZTYpr(W_|qs5 zVdyDY`*7q*?gfG&@zj%^e#Wq0Xv~4C3y$L3B$5>KA~^oobW^agX2Ef=j!O)-38$N0 z(<Mlck2`(h-&i2Ak->(Atb@zQF{J0R5|LK5Fcd@ApD^SK#l|T=;}xIFUZtf2Pxh)N z^Hm3%CT*e{C{K$l>E3d19owXK$OodXWQXf_p6=5w)LiP2;YneUY|*nMqv_|4gI!Z` zQmd#AhIn0dNo2a=Nzoh+T@kdo>yyU{Cqq}6o!wI7pd(H^b6AV|b7&MXWR8^5p$_=y zwa|Ul4butSwQ&yx3q_-)#E}0h-jio)Af`Qt<el)2Rspr?^Q^EbFd}`)W!D#BzM<4$ zJgP3Lo$>q=*q)5U68QTW{2TXFbaZvLUsH-Y_x%=qmTD4Zh7@Db$k+_dD=9@#_c?vy z&_abKZ$aX+$}K!(*!@40rXiAvJ(`de8VMi{X8r+MZ_?=wV)Ou3>7aZL_La5_w`h&v z2?AQ=*+Xs`uuYcHeJpEz`2#j=CWM(0rqwW)DWCD?O5c$Bjx?DoWG-+Gn2%h~)XXSN pBX`J}$koz0Zp=eXxwq+Zg-XwpO%imU-UHmHlPTd45AX<EzX8p;^CtiR literal 0 HcmV?d00001 diff --git a/AST/GrEgNb.java b/AST/GrEgNb.java new file mode 100644 index 0000000..03c2aab --- /dev/null +++ b/AST/GrEgNb.java @@ -0,0 +1,15 @@ +package AST; + +public class GrEgNb extends ExpressionA_Binaire { + + public GrEgNb(ExpressionA gauche, ExpressionA droite) { + super(gauche, droite); + } + + public String symbole() { + return "GrEqNb"; + } + public String toAssembly() { + return gauche.toAssembly() + droite.toAssembly() + "GrEqNb\n"; + } +} diff --git a/AST/GrStNb.class b/AST/GrStNb.class new file mode 100644 index 0000000000000000000000000000000000000000..21cb2dce4c70bb0f96c73ce64121734939d2edfb GIT binary patch literal 1020 zcmaJ=U2hUW6g^WY3)`(wL~E_BR;dET;>U{#Mnj2J6RZyqeel7|!UVP~Gh}yY<e&I6 zG%+^mgFnC@WxSImiYzgkojY^q+;i`_d-vzBiyr`<<FSnuBrGHytRls**=ToaFFuU} z5r&?UjgLp3<X#{cQcpeU>1Pc4rPczd9&?o6rIDtXmqA;fxEa`3v*0*b$0Y{aghw|7 z>GMf<K>Qmq5*s;eSjaoLi~>V;AuADS)d)i|a{Vbop;T_2@-trZx$M{4I`Cw_ZZcnW zuxZk!dV%t^$dm3Z2iLJpYDau1no4%Le(&i4?Ly6^4jG=5;$(5pl8mOGI}UbD#c8dg zIvA2o)gzJFmM6u@WaNsV!(E>|RyZBG%Ixg6ngm^O?3u$_)SpA6h#_~Rln!;k$8Url zs9u;&;jWE)C|M{QEft31U-6ziQ$sQ9K_u^(ceM(rO`qq5&43Z<D=vG!2#YPHhLdqU zu6EAzPhe*{7E9nC=J0RbQ_<D+`F_nPn%wu>^jYd@R2ediMZ#?c=e3j~X!@K!acH4N zlNXb?ta1wv8Fv2<rD=#{Vvi<dg+>BMf|-AS)|+&?g9JT*RXM1hgMFnf!!24Pc#41) zdG=741#FXLbf3suU;cm%n+aiNglRR*Rmx|)g~~T%z9UQK3YiOB0~RCKa}6^}v&bE? lCUUiMjvI?mQ|@iLT%pp7WYYxQr}qH&>10Yc!~;CS)^EO<^M3#U literal 0 HcmV?d00001 diff --git a/AST/GrStNb.java b/AST/GrStNb.java new file mode 100644 index 0000000..4db76e1 --- /dev/null +++ b/AST/GrStNb.java @@ -0,0 +1,15 @@ +package AST; + +public class GrStNb extends ExpressionA_Binaire { + + public GrStNb(ExpressionA gauche, ExpressionA droite) { + super(gauche, droite); + } + + public String symbole() { + return "GrStNb"; + } + public String toAssembly() { + return gauche.toAssembly() + droite.toAssembly() + "GrStNb\n"; + } +} diff --git a/AST/LoEqNb.class b/AST/LoEqNb.class new file mode 100644 index 0000000000000000000000000000000000000000..a655e32420a284d13eed069f04ff0b515c920f17 GIT binary patch literal 1020 zcmaJ=U2hUW6g>l!h3!@-qP5mmt5ktv@#Dn=qoJgYCRiUJ`rv~ZU;<l~8QdKj`6vDi zO^i+Y;1BRe8Sl76ktJrcb7$_Hd+t4V@Ba9C@g2Z(Jhl--+(N>^3X%*P^;Wxj^l|Kq zAaIqezdv*(cYVQ-eCkS9KV#S{HWxs(h@<o-g%rg!)zOEOP8v2=EjSL=aEZY-;o%KI z`h3zI5dV6F#6}kD7IF?QBhQdo$Vx<7)q_BcI^L8aUo16G`5CWzT=uIi?YpvHGnubC z*f436Jzu$6<Vg3XgX`ELwIe<h4JEr=zjgJ1c7f(n2MkY&QL?CKNk-GpZ3jE1;*?fl z9Sn(v>XFDy)0N_6GU^Dw%{v}>tYA9oD6_L$YT|drv1<;iVSf&cB8KdtQaaE+AHNcM zpn5?jiMuxLp=hCGw3HbNf5p4<Obx}X2cf)U-qp&dHhr2GHUoyFFSzV^A}BPK8cxQw zsM<NtKY{J(SS*3Ro5R2EoQkfl&G&0Y(cqrfqR&!Gp~8@6EEH}tI4`9Xe#7JRi31B& zn!Jd_WtCfa$guN&=<m@qGO<e&5~Gm-5@6;Zp!Fu5?jTMNV3qeP=U`uG%W#X<5S}EU zMV?*cX8~Je8QsTo*5^N9!)8L58DUxtbA|F5Z@&B$>2Ju8xkBaw*MP;ywQSvt(kybD mtchGHpX0_N)RcRhE@M=BfozJPd-U$(KAlVn2Y7%-*!%?@a`Qs~ literal 0 HcmV?d00001 diff --git a/AST/LoEqNb.java b/AST/LoEqNb.java new file mode 100644 index 0000000..fd6a521 --- /dev/null +++ b/AST/LoEqNb.java @@ -0,0 +1,15 @@ +package AST; + +public class LoEqNb extends ExpressionA_Binaire { + + public LoEqNb(ExpressionA gauche, ExpressionA droite) { + super(gauche, droite); + } + + public String symbole() { + return "LoEqNb"; + } + public String toAssembly() { + return gauche.toAssembly() + droite.toAssembly() + "LoEqNb\n"; + } +} diff --git a/AST/LoStNb.class b/AST/LoStNb.class new file mode 100644 index 0000000000000000000000000000000000000000..15502362c45cee8f74cb672caaa133f51ab525bf GIT binary patch literal 1020 zcmaJ=U2hUW6g^WY3)`(wL~E_BR;dET;>U{#Mnj2>CRiUJ`rw0^g$Zm~X2|Z)$UpIC zXku*A2Y-M+%6P{miYzgkojY^q+;i`_d-uoBi|+uQ<FSnuBrGHytRls**=ToaFFuX~ z5r&?UjSokj<X#{cQcpeU>1Pc4rPczd9&?o6rje$YmTK!0Hv=1M790obxWr(a@aTph zeLm?9h<_tSVk3tQ3wZ~ZQDDd}WF;c48eu3#u0Lfcl*+ABe#UD)m;G8>2cGQLP3Ef( zHci@8FHoKqdD6Y*;5xQR?T8OWQ^_vZ?>s%AU8uR#A;XhWoGk8HlF{^Y$HA_tIIT&( zse>WeR6P=zZFy3hOh&E<I^6ZiV};X^tIW=Bt4Yum$DTQ?Mg2K6iWqW7O6gDseEeGI zf$D|X6z<x%hmwV|(NbY3{uS@ZGc^>m9z^nvc~`4|+Vp8&*bEqvzT~p!i?G;IYB(9! z<7($T{{(iXW3dGOeh&Y}Jr!MDpYPX<qRD-~O`oNnMwKDMSR~wLa9&9%f~L>u6NeUR zG<h+J%PP0<kYV@#(BGqJWMYpdWQ9foNP?MvfYzIIx`PBgfK@rDo`Zd%EyFEZBY28{ z7J2qim<4Q;Wptm&Tc7`c4VwvJW`t=q%vH)~yoJhFWWFIw<_eh$Tmu#(*K-XsO0&ov mvL<r1a*i8|P*d)0x?G{si)7OT-KX~e_vvIxIK%@y!qzX;H}i)8 literal 0 HcmV?d00001 diff --git a/AST/LoStNb.java b/AST/LoStNb.java new file mode 100644 index 0000000..953f962 --- /dev/null +++ b/AST/LoStNb.java @@ -0,0 +1,15 @@ +package AST; + +public class LoStNb extends ExpressionA_Binaire { + + public LoStNb(ExpressionA gauche, ExpressionA droite) { + super(gauche, droite); + } + + public String symbole() { + return "LoStNb"; + } + public String toAssembly() { + return gauche.toAssembly() + droite.toAssembly() + "LoStNb\n"; + } +} diff --git a/AST/Modulo.class b/AST/Modulo.class new file mode 100644 index 0000000000000000000000000000000000000000..c700d73d6cdda889950837839ab01726ed77abf1 GIT binary patch literal 1016 zcmaJ=TW=CU6#fQ~h3zU7(OPR;FI0hI@$zDV(NJQe39Szheel7|!UVP~Gh}yY<e&I6 zG%+^mgFnC@Wjy1Oh%7OiopagmT)s1BfBw4o0pKN`+DIU2A?4r_(hM8TPPhK*(<BgK z=qcI!c<4#)1%e^{+>@Su!LV0uFM%2{N9A1x8Hzbp{i(0Au(4*rac~(|7;F<BeIdwz zPkTekzaC3sBad|p1qWAAWXLU5r9@ga!%&P}f5uQOSK6oijMsfG2lb8)JUM8X%GVui zn6l}9pgb)K#Cy}hO>7a{F&~MRl0B~9dwNJ(sJYZ3!?SWcS=_UtqM7HmgB{axMysd~ zhEz-SiDa(rNpUhAyCUdv*C&q^&c?1Xn%z;;peK$zW2{B<IWUYE@`p<4PzQW+Ec8(I z!(1BoZ9G8PLd9^YGL-(3_vD!xiTMm7dPlscRX}6<yhv;gjFP_QvhRzq)K+RVoiyTX z7d-z2c4rf@0{&qE|JFSfJ>6KG*E~gw`+kS6rIA66A<LK{e&X5;&KoI3(DFH5acH4V zn-`<Fs&fmE8Fu~;rEQ34;tp*{f>r`Zfti1R&Rw#0k)#K(s{6Hbu&<;t+@{k2KtM*J z#W{G3r12&T))x|sK#MF|Uph_J8r3quV)Yxc-;pD6jl>0R0LziteABGaJaU`lpTgC1 h+**d3R_{{U1n!|kGDFZkdiU{=ESt0gJi-%f{swy;^fmwh literal 0 HcmV?d00001 diff --git a/AST/Modulo.java b/AST/Modulo.java new file mode 100644 index 0000000..b02615f --- /dev/null +++ b/AST/Modulo.java @@ -0,0 +1,11 @@ +package AST; + +public class Modulo extends ExpressionA_Binaire { + + public Modulo(ExpressionA gauche,ExpressionA droite) {super(gauche, droite);} + + public String symbole() {return "Modulo";}; + public String toAssembly() { + return gauche.toAssembly() + droite.toAssembly() + "ModuNb\n"; + } +} diff --git a/AST/Not.class b/AST/Not.class new file mode 100644 index 0000000000000000000000000000000000000000..d63de49f9d2860ddb60f59b3fabee95e50dbbe16 GIT binary patch literal 1028 zcmah|>uwT36#j<W!n!RjqP1SCRj5E~vECAc(I9D~3DzHw8so14#&*jxLw1Hn-o(ey z#9Nx^1NczJvt6{b5Y1+1&dm9~bDy8T4u1f6f(JGth+2p_h$F#}t~Q$G&3AoYXzeOl zWk@`7rE4BDL<_~86p~0;upOL%!(avIZDmNw{auFn`YC!PiCKmeK??beoGx0JW0>3L z2fXZYxm$kO+81qOBaMuMv&b?ejcOR*m1HejDAtdm;cdmnc`R7C;9wCKPuTiHOT1Nn zk5fz!3zPIWV^^W`%2X#2Ty}6J2*@_7s<r5~ykUk)cGbZ(EHf<hcvsYvY;*I<HG3p! z!==#-D^uJ~@e$-VQLf?+L#(Dcf;v%mrPv<yTEcJgmPa>sLk;}4*m8qIl4`mhREKKt zR4Jp4&-*Wg*;5^zPM~O`gjEY`LAbXVa>s>q<$>yoa#*e~gDu`R${#YkACG+m42?eH zvf~Mzt1HzV^eba!95rU_<^-`h?29Sz|1@G`qQ*V1;Tl16RAz`XO4?>{o=YkGn#ZXx z+QJ=%{6u=wqPB34Vd>vc8u&0pEYqw<sN;-2ns$<+B*k%^)*Eyxkv7oVrLSP6)z7d# z9-(uz&Jq@&XBE5``dBdBBi<U>V5H4vW@6uwejP1+g7pRSjc+*j;je|n5yqjFrf|f} q(;hHqLdK;-ECHt}X>y$>Py{QuNqdqg1^U-<n@%=K8@P-6So{r-y!q|` literal 0 HcmV?d00001 diff --git a/AST/Not.java b/AST/Not.java new file mode 100644 index 0000000..8cdde2e --- /dev/null +++ b/AST/Not.java @@ -0,0 +1,17 @@ +package AST; + +public class Not extends ExpressionA { + + public ExpressionA arg; + + public Not(ExpressionA arg) { + this.arg = arg; + } + + public String toString() { + return String.format("Not(%1$s)", arg.toString()); + } + public String toAssembly() { + return (arg.toAssembly())+"Not\n"; + } +} diff --git a/AST/NotEql.class b/AST/NotEql.class new file mode 100644 index 0000000000000000000000000000000000000000..d1f224d1abe23b7642888ad8f66f8e03a4e71d99 GIT binary patch literal 1022 zcmaJ=U2hUW6g>l!UA9}Hh}K$Ltx^Sw#g7*gjE0gnnqYl^=z|YtfC+3_W^i|C<e&I6 zG%+^mgFnC@WxV4OMIdIgb7$_Hd+t4V@Ba9C@g2Z(Ja!O6+(N>|3X%*PwPvew^l=o3 zF!YqHy+8CM_X5F?eCkP0KV#S{H0D6n1xN9X4V%F}QTph^nENR>She7~Si>a-#}NF! z^NF~}$DKZ9SYM!Vkioiztc%OYF{J165|LK5FcibKKVirfij7l##w$LTy-HIDp6pdk z=Bq9?Oxk2OP@Wc9QoiZpI<`pfkPk#%$qv_VJ>92WsJYZ3!;``y*`jAjM$^%47dxh6 zTdSxJhD2R;No2a=NpUhBwnfn5ZJ#_=I2pE;**Q%$4m#r4Gl$ivKL<t;L*`H^9qNFO zUJ2b--7uZRT?hA2uuwEwN(}kG;yrn$24dQSNZv8;XcbVKKFtc70wdBFTy}jC<{L^4 z#-r+@+8NJ3fvw3%EP=n9!M|>wijJ<%_G?N}=f2;h&r-EfW=Js>33nLWmr{zL?sNLY zp@j;~-h#wsm0Nhou=9T?O+zFTyEGv&8VMi)X8r<NZ_?=w;`9JkX}^39_Jy_#w`h&v zNdj8r*+p&|utk>9eLQP@{sT5_CWM(0rqwW)DWCD?N?(!shBTQgWG-+Gn2%h`)XXSN oBe%(#$d%GLZp=eXxwq*uMy2P;+63LBcOUoZWJ)-|13bd!FLW66;{X5v literal 0 HcmV?d00001 diff --git a/AST/NotEql.java b/AST/NotEql.java new file mode 100644 index 0000000..33e5304 --- /dev/null +++ b/AST/NotEql.java @@ -0,0 +1,15 @@ +package AST; + +public class NotEql extends ExpressionA_Binaire { + + public NotEql(ExpressionA gauche, ExpressionA droite) { + super(gauche, droite); + } + + public String symbole() { + return "NotEqual"; + } + public String toAssembly() { + return gauche.toAssembly() + droite.toAssembly() + "NotEql\n"; + } +} diff --git a/Compilateur.class b/Compilateur.class index 1c4d79fddc79d98aae8417efccb5f86bdcc49bdf..f5b5c61d9646ce29d806e9596b46a315752f5b44 100644 GIT binary patch literal 8192 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 Y(nvE()$89zu4_rcN;Rn#wFQO$56dsHr2qf` literal 7086 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 diff --git a/Compilateur.java b/Compilateur.java index 71b2401..64deedf 100644 --- a/Compilateur.java +++ b/Compilateur.java @@ -25,12 +25,16 @@ public class Compilateur implements CompilateurConstants { } static final public ExpressionA expression() throws ParseException {ExpressionA gauche, droite; - gauche = terme(); + gauche = comp(); label_1: while (true) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case 5: - case 6:{ + case 7: + case 8: + case 9: + case 10: + case 11: + case 12:{ ; break; } @@ -39,20 +43,81 @@ public class Compilateur implements CompilateurConstants { break label_1; } switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case 5:{ - jj_consume_token(5); + case 7:{ + jj_consume_token(7); + droite = comp(); +gauche = new Egal(gauche, droite); + break; + } + case 8:{ + jj_consume_token(8); + droite = comp(); +gauche = new GrEgNb(gauche, droite); + break; + } + case 9:{ + jj_consume_token(9); + droite = comp(); +gauche = new GrStNb(gauche, droite); + break; + } + case 10:{ + jj_consume_token(10); + droite = comp(); +gauche = new LoStNb(gauche, droite); + break; + } + case 11:{ + jj_consume_token(11); + droite = comp(); +gauche = new LoEqNb(gauche, droite); + break; + } + case 12:{ + jj_consume_token(12); + droite = comp(); +gauche = new NotEql(gauche, droite); + break; + } + default: + jj_la1[1] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } +{if ("" != null) return gauche;} + throw new Error("Missing return statement in function"); +} + + static final public ExpressionA comp() throws ParseException {ExpressionA gauche, droite; + gauche = terme(); + label_2: + while (true) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case 13: + case 14:{ + ; + break; + } + default: + jj_la1[2] = jj_gen; + break label_2; + } + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case 13:{ + jj_consume_token(13); droite = terme(); gauche = new Plus(gauche, droite); break; } - case 6:{ - jj_consume_token(6); + case 14:{ + jj_consume_token(14); droite = terme(); gauche = new Moins(gauche, droite); break; } default: - jj_la1[1] = jj_gen; + jj_la1[3] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -63,33 +128,40 @@ gauche = new Moins(gauche, droite); static final public ExpressionA terme() throws ParseException {ExpressionA gauche, droite; gauche = facteur(); - label_2: + label_3: while (true) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case 7: - case 8:{ + case 15: + case 16: + case 17:{ ; break; } default: - jj_la1[2] = jj_gen; - break label_2; + jj_la1[4] = jj_gen; + break label_3; } switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case 7:{ - jj_consume_token(7); + case 15:{ + jj_consume_token(15); droite = facteur(); gauche = new Mult(gauche, droite); break; } - case 8:{ - jj_consume_token(8); + case 16:{ + jj_consume_token(16); droite = facteur(); gauche = new Div(gauche, droite); break; } + case 17:{ + jj_consume_token(17); + droite = facteur(); +gauche = new Modulo(gauche, droite); + break; + } default: - jj_la1[3] = jj_gen; + jj_la1[5] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -100,26 +172,42 @@ gauche = new Div(gauche, droite); static final public ExpressionA facteur() throws ParseException {ExpressionA expr; switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case 9:{ - jj_consume_token(9); + case 18:{ + jj_consume_token(18); expr = expression(); - jj_consume_token(10); + jj_consume_token(19); {if ("" != null) return expr;} break; } - case 6:{ - jj_consume_token(6); + case 14:{ + jj_consume_token(14); expr = facteur(); {if ("" != null) return new Neg(expr);} break; } + case 20:{ + jj_consume_token(20); + expr = facteur(); +{if ("" != null) return new Not(expr);} + break; + } case NOMBRE:{ jj_consume_token(NOMBRE); {if ("" != null) return new Num(Integer.parseInt(token.image));} break; } + case FLOAT:{ + jj_consume_token(FLOAT); +{if ("" != null) return new FloatT(Float.parseFloat(token.image));} + break; + } + case BOOLEAN:{ + jj_consume_token(BOOLEAN); +{if ("" != null) return new Bool(Boolean.parseBoolean(token.image));} + break; + } default: - jj_la1[4] = jj_gen; + jj_la1[6] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -136,13 +224,13 @@ gauche = new Div(gauche, droite); static public Token jj_nt; static private int jj_ntk; static private int jj_gen; - static final private int[] jj_la1 = new int[5]; + static final private int[] jj_la1 = new int[7]; static private int[] jj_la1_0; static { jj_la1_init_0(); } private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0x60,0x60,0x180,0x180,0x248,}; + jj_la1_0 = new int[] {0x1f80,0x1f80,0x6000,0x6000,0x38000,0x38000,0x144038,}; } /** Constructor with InputStream. */ @@ -163,7 +251,7 @@ gauche = new Div(gauche, droite); token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 5; i++) jj_la1[i] = -1; + for (int i = 0; i < 7; i++) jj_la1[i] = -1; } /** Reinitialise. */ @@ -177,7 +265,7 @@ gauche = new Div(gauche, droite); token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 5; i++) jj_la1[i] = -1; + for (int i = 0; i < 7; i++) jj_la1[i] = -1; } /** Constructor. */ @@ -194,7 +282,7 @@ gauche = new Div(gauche, droite); token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 5; i++) jj_la1[i] = -1; + for (int i = 0; i < 7; i++) jj_la1[i] = -1; } /** Reinitialise. */ @@ -212,7 +300,7 @@ gauche = new Div(gauche, droite); token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 5; i++) jj_la1[i] = -1; + for (int i = 0; i < 7; i++) jj_la1[i] = -1; } /** Constructor with generated Token Manager. */ @@ -228,7 +316,7 @@ gauche = new Div(gauche, droite); token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 5; i++) jj_la1[i] = -1; + for (int i = 0; i < 7; i++) jj_la1[i] = -1; } /** Reinitialise. */ @@ -237,7 +325,7 @@ gauche = new Div(gauche, droite); token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 5; i++) jj_la1[i] = -1; + for (int i = 0; i < 7; i++) jj_la1[i] = -1; } static private Token jj_consume_token(int kind) throws ParseException { @@ -288,12 +376,12 @@ gauche = new Div(gauche, droite); /** Generate ParseException. */ static public ParseException generateParseException() { jj_expentries.clear(); - boolean[] la1tokens = new boolean[11]; + boolean[] la1tokens = new boolean[21]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 5; i++) { + for (int i = 0; i < 7; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1<<j)) != 0) { @@ -302,7 +390,7 @@ gauche = new Div(gauche, droite); } } } - for (int i = 0; i < 11; i++) { + for (int i = 0; i < 21; i++) { if (la1tokens[i]) { jj_expentry = new int[1]; jj_expentry[0] = i; diff --git a/Compilateur.jj b/Compilateur.jj index aa74977..71c1c19 100644 --- a/Compilateur.jj +++ b/Compilateur.jj @@ -23,6 +23,8 @@ SKIP : TOKEN : { < NOMBRE: ["1"-"9"] (["0"-"9"])* > +| < FLOAT: (["0"-"9"])+ "." (["0"-"9"])+ > +| < BOOLEAN: "True" | "False"> | < EOL: "\n" > } @@ -33,15 +35,33 @@ ExpressionA mainNT () : { expression=expression() <EOL> { return expression; } } -ExpressionA expression () : +ExpressionA expression() : +{ + ExpressionA gauche, droite; +} +{ + gauche=comp() ( + "==" droite=comp() { gauche = new Egal(gauche, droite); } + | ">=" droite=comp() { gauche = new GrEgNb(gauche, droite); } + | ">" droite=comp() { gauche = new GrStNb(gauche, droite);} + | "<" droite=comp() { gauche = new LoStNb(gauche, droite);} + | "<=" droite=comp() { gauche = new LoEqNb(gauche, droite); } + | "!=" droite=comp() { gauche = new NotEql(gauche, droite); } + + + )* + { return gauche; } +} + +ExpressionA comp() : { ExpressionA gauche, droite; } { gauche=terme() ( - "+" droite=terme() { gauche = new Plus(gauche, droite); } + "+" droite=terme() { gauche = new Plus(gauche, droite); } | "-" droite=terme() { gauche = new Moins(gauche, droite); } - )* + )* { return gauche; } } ExpressionA terme () : @@ -50,8 +70,9 @@ ExpressionA terme () : } { gauche=facteur() ( - "*" droite=facteur() { gauche = new Mult(gauche, droite); } - | "/" droite=facteur() { gauche = new Div(gauche, droite); } + "*" droite=facteur() { gauche = new Mult(gauche, droite); } + | "/" droite=facteur() { gauche = new Div(gauche, droite);} + | "%" droite=facteur() { gauche = new Modulo(gauche, droite); } )* { return gauche; } } @@ -61,7 +82,10 @@ ExpressionA facteur() : ExpressionA expr; } { - "(" expr=expression() ")" { return expr; } - | "-" expr=facteur() { return new Neg(expr); } // Construit un nœud Neg - | <NOMBRE> { return new Num(Integer.parseInt(token.image)); } // Construit un nœud Num + "(" expr=expression() ")" { return expr; } + | "-" expr=facteur() { return new Neg(expr); } + | "!" expr=facteur() { return new Not(expr); }// Construit un nœud not + | <NOMBRE> { return new Num(Integer.parseInt(token.image));} + | <FLOAT> { return new FloatT(Float.parseFloat(token.image));} + | <BOOLEAN> { return new Bool(Boolean.parseBoolean(token.image));}// Construit un nœud Num } diff --git a/CompilateurConstants.class b/CompilateurConstants.class index a58ead425930158a1078c1587deed3c426639012..69c8546ba136dbbd5cab74c09e0f9cc35539b62f 100644 GIT binary patch delta 480 zcmYk1J5B;&6ot<Z12Z7v_=^U7&nU`6Kzu(25EQT=PJs=^!WFm$;t~iIE3h_p7PclX zz(u$S<GIFSnsdHyZsz9xAI5Vu{`vFv4xoYSQM@}ey-v?>-qtN76=Gh?_j~Q;4b@gK z-1|q@f)=XPNGYMZ(1JqPtrOA$9$`^tp3Iho9HCVi776PDC4wtZAZ!X$+^U5wp)5b; z1agFeK%TH8;J7iAQ8BTbKoxtViKh-mU#)E9@9;36VknsZhl@t|SKIFiM#qkN7?!b5 zHj%+0j-YT%3*m%*8t^mvdB8n-E#P%}Bj6YGX24}1@8fO-3oTr-uV|Av3>NTY&yT-V z<8EM2=}doMC-f3?TCXsZdW|`w9j2`}n6o;|)Owpar}NB|F7{thdf_UCHZ#fw(##G! GgzhgbML1vp delta 256 zcmYk#%?bfw6vpxA%nZhmq)EoN*S9ga08wgUq1*svYvWRs<{D%zI}2OoqU3pZvpMJY zulMcTlON0Z{$6hYOU$m$dSj{mS=q=5Oyv`Kjesa<j0jg_N)$B)L`h?)(kP>nLN$vT z>XFD?n$bd5X*1kyO<u5~n;cJNH0T68w4fkpvkY|D-B|b7{a6p!!&vM0yu!Z%8zcDK fW7Yu{ClKZ{(ZyKSpYR?`LBN^h23*bww}I&&8)g`p diff --git a/CompilateurConstants.java b/CompilateurConstants.java index 62e0b98..9d38bb9 100644 --- a/CompilateurConstants.java +++ b/CompilateurConstants.java @@ -11,7 +11,11 @@ public interface CompilateurConstants { /** RegularExpression Id. */ int NOMBRE = 3; /** RegularExpression Id. */ - int EOL = 4; + int FLOAT = 4; + /** RegularExpression Id. */ + int BOOLEAN = 5; + /** RegularExpression Id. */ + int EOL = 6; /** Lexical state. */ int DEFAULT = 0; @@ -22,13 +26,23 @@ public interface CompilateurConstants { "\" \"", "\"\\t\"", "<NOMBRE>", + "<FLOAT>", + "<BOOLEAN>", "\"\\n\"", + "\"==\"", + "\">=\"", + "\">\"", + "\"<\"", + "\"<=\"", + "\"!=\"", "\"+\"", "\"-\"", "\"*\"", "\"/\"", + "\"%\"", "\"(\"", "\")\"", + "\"!\"", }; } diff --git a/CompilateurTokenManager.class b/CompilateurTokenManager.class index 07b173fc224be35b1a4ff6b8c2fe2cb6a464732b..3477ce7fdf63c56e5bb2e2d0a81bcdd0e6af6d04 100644 GIT binary patch literal 7098 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 literal 5949 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 V-SpoaFXL5yNuT~2O6(^Z{tn<0MO**? diff --git a/CompilateurTokenManager.java b/CompilateurTokenManager.java index 9a0b305..cdfb2aa 100644 --- a/CompilateurTokenManager.java +++ b/CompilateurTokenManager.java @@ -31,27 +31,63 @@ static private int jjMoveStringLiteralDfa0_0(){ switch(curChar) { case 10: - return jjStopAtPos(0, 4); + return jjStopAtPos(0, 6); + case 33: + jjmatchedKind = 20; + return jjMoveStringLiteralDfa1_0(0x1000L); + case 37: + return jjStopAtPos(0, 17); case 40: - return jjStopAtPos(0, 9); + return jjStopAtPos(0, 18); case 41: - return jjStopAtPos(0, 10); + return jjStopAtPos(0, 19); case 42: - return jjStopAtPos(0, 7); + return jjStopAtPos(0, 15); case 43: - return jjStopAtPos(0, 5); + return jjStopAtPos(0, 13); case 45: - return jjStopAtPos(0, 6); + return jjStopAtPos(0, 14); case 47: - return jjStopAtPos(0, 8); + return jjStopAtPos(0, 16); + case 60: + jjmatchedKind = 10; + return jjMoveStringLiteralDfa1_0(0x800L); + case 61: + return jjMoveStringLiteralDfa1_0(0x80L); + case 62: + jjmatchedKind = 9; + return jjMoveStringLiteralDfa1_0(0x100L); default : return jjMoveNfa_0(0, 0); } } +static private int jjMoveStringLiteralDfa1_0(long active0){ + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(0, active0); + return 1; + } + switch(curChar) + { + case 61: + if ((active0 & 0x80L) != 0L) + return jjStopAtPos(1, 7); + else if ((active0 & 0x100L) != 0L) + return jjStopAtPos(1, 8); + else if ((active0 & 0x800L) != 0L) + return jjStopAtPos(1, 11); + else if ((active0 & 0x1000L) != 0L) + return jjStopAtPos(1, 12); + break; + default : + break; + } + return jjStartNfa_0(0, active0); +} static private int jjMoveNfa_0(int startState, int curPos) { int startsAt = 0; - jjnewStateCnt = 2; + jjnewStateCnt = 13; int i = 1; jjstateSet[0] = startState; int kind = 0x7fffffff; @@ -67,11 +103,14 @@ static private int jjMoveNfa_0(int startState, int curPos) switch(jjstateSet[--i]) { case 0: - if ((0x3fe000000000000L & l) == 0L) - break; - if (kind > 3) - kind = 3; - { jjCheckNAdd(1); } + if ((0x3ff000000000000L & l) != 0L) + { jjCheckNAddTwoStates(2, 3); } + if ((0x3fe000000000000L & l) != 0L) + { + if (kind > 3) + kind = 3; + { jjCheckNAdd(1); } + } break; case 1: if ((0x3ff000000000000L & l) == 0L) @@ -80,6 +119,21 @@ static private int jjMoveNfa_0(int startState, int curPos) kind = 3; { jjCheckNAdd(1); } break; + case 2: + if ((0x3ff000000000000L & l) != 0L) + { jjCheckNAddTwoStates(2, 3); } + break; + case 3: + if (curChar == 46) + { jjCheckNAdd(4); } + break; + case 4: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 4) + kind = 4; + { jjCheckNAdd(4); } + break; default : break; } } while(i != startsAt); @@ -91,6 +145,44 @@ static private int jjMoveNfa_0(int startState, int curPos) { switch(jjstateSet[--i]) { + case 0: + if (curChar == 70) + jjstateSet[jjnewStateCnt++] = 11; + else if (curChar == 84) + jjstateSet[jjnewStateCnt++] = 7; + break; + case 5: + if (curChar == 101) + kind = 5; + break; + case 6: + if (curChar == 117) + { jjCheckNAdd(5); } + break; + case 7: + if (curChar == 114) + jjstateSet[jjnewStateCnt++] = 6; + break; + case 8: + if (curChar == 84) + jjstateSet[jjnewStateCnt++] = 7; + break; + case 9: + if (curChar == 115) + { jjCheckNAdd(5); } + break; + case 10: + if (curChar == 108) + jjstateSet[jjnewStateCnt++] = 9; + break; + case 11: + if (curChar == 97) + jjstateSet[jjnewStateCnt++] = 10; + break; + case 12: + if (curChar == 70) + jjstateSet[jjnewStateCnt++] = 11; + break; default : break; } } while(i != startsAt); @@ -114,7 +206,7 @@ static private int jjMoveNfa_0(int startState, int curPos) kind = 0x7fffffff; } ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 2 - (jjnewStateCnt = startsAt))) + if ((i = jjnewStateCnt) == (startsAt = 13 - (jjnewStateCnt = startsAt))) return curPos; try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { return curPos; } @@ -123,7 +215,8 @@ static private int jjMoveNfa_0(int startState, int curPos) /** Token literal values. */ public static final String[] jjstrLiteralImages = { -"", null, null, null, "\12", "\53", "\55", "\52", "\57", "\50", "\51", }; +"", null, null, null, null, null, "\12", "\75\75", "\76\75", "\76", "\74", +"\74\75", "\41\75", "\53", "\55", "\52", "\57", "\45", "\50", "\51", "\41", }; static protected Token jjFillToken() { final Token t; @@ -301,7 +394,7 @@ static private void jjCheckNAddTwoStates(int state1, int state2) { int i; jjround = 0x80000001; - for (i = 2; i-- > 0;) + for (i = 13; i-- > 0;) jjrounds[i] = 0x80000000; } @@ -330,10 +423,10 @@ public static final String[] lexStateNames = { /** Lex State array. */ public static final int[] jjnewLexState = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; static final long[] jjtoToken = { - 0x7f9L, + 0x1ffff9L, }; static final long[] jjtoSkip = { 0x6L, @@ -346,8 +439,8 @@ static final long[] jjtoMore = { }; static protected SimpleCharStream input_stream; - static private final int[] jjrounds = new int[2]; - static private final int[] jjstateSet = new int[2 * 2]; + static private final int[] jjrounds = new int[13]; + static private final int[] jjstateSet = new int[2 * 13]; private static final StringBuilder jjimage = new StringBuilder(); private static StringBuilder image = jjimage; private static int jjimageLen; -- GitLab From 7c82b3f3a274e1a0fceab478a852887733064ba9 Mon Sep 17 00:00:00 2001 From: yChaaby <113364055+yChaaby@users.noreply.github.com> Date: Sat, 25 May 2024 04:31:21 +0200 Subject: [PATCH 2/4] fix some bugs --- AST/AST.class | Bin 184 -> 0 bytes AST/Bool.class | Bin 845 -> 0 bytes AST/Div.class | Bin 1010 -> 0 bytes AST/Egal.class | Bin 1016 -> 0 bytes AST/ExpressionA.class | Bin 235 -> 0 bytes AST/ExpressionA_Binaire.class | Bin 642 -> 0 bytes AST/FloatT.class | Bin 847 -> 0 bytes AST/GrEgNb.class | Bin 1020 -> 0 bytes AST/GrStNb.class | Bin 1020 -> 0 bytes AST/LoEqNb.class | Bin 1020 -> 0 bytes AST/LoStNb.class | Bin 1020 -> 0 bytes AST/Modulo.class | Bin 1016 -> 0 bytes AST/Moins.class | Bin 1013 -> 0 bytes AST/Mult.class | Bin 1010 -> 0 bytes AST/Neg.class | Bin 1031 -> 0 bytes AST/Not.class | Bin 1028 -> 0 bytes AST/NotEql.class | Bin 1022 -> 0 bytes AST/Num.class | Bin 843 -> 0 bytes AST/Plus.class | Bin 1010 -> 0 bytes Compilateur.class | Bin 8192 -> 0 bytes Compilateur.java | 422 ------------------------------ CompilateurConstants.class | Bin 807 -> 0 bytes CompilateurConstants.java | 48 ---- CompilateurTokenManager.class | Bin 7098 -> 0 bytes CompilateurTokenManager.java | 449 -------------------------------- ParseException.class | Bin 3271 -> 0 bytes ParseException.java | 193 -------------- SimpleCharStream.class | Bin 6926 -> 0 bytes SimpleCharStream.java | 474 ---------------------------------- Token.class | Bin 985 -> 0 bytes Token.java | 130 ---------- TokenMgrError.class | Bin 2854 -> 0 bytes TokenMgrError.java | 146 ----------- 33 files changed, 1862 deletions(-) delete mode 100644 AST/AST.class delete mode 100644 AST/Bool.class delete mode 100644 AST/Div.class delete mode 100644 AST/Egal.class delete mode 100644 AST/ExpressionA.class delete mode 100644 AST/ExpressionA_Binaire.class delete mode 100644 AST/FloatT.class delete mode 100644 AST/GrEgNb.class delete mode 100644 AST/GrStNb.class delete mode 100644 AST/LoEqNb.class delete mode 100644 AST/LoStNb.class delete mode 100644 AST/Modulo.class delete mode 100644 AST/Moins.class delete mode 100644 AST/Mult.class delete mode 100644 AST/Neg.class delete mode 100644 AST/Not.class delete mode 100644 AST/NotEql.class delete mode 100644 AST/Num.class delete mode 100644 AST/Plus.class delete mode 100644 Compilateur.class delete mode 100644 Compilateur.java delete mode 100644 CompilateurConstants.class delete mode 100644 CompilateurConstants.java delete mode 100644 CompilateurTokenManager.class delete mode 100644 CompilateurTokenManager.java delete mode 100644 ParseException.class delete mode 100644 ParseException.java delete mode 100644 SimpleCharStream.class delete mode 100644 SimpleCharStream.java delete mode 100644 Token.class delete mode 100644 Token.java delete mode 100644 TokenMgrError.class delete mode 100644 TokenMgrError.java diff --git a/AST/AST.class b/AST/AST.class deleted file mode 100644 index cb53cf1a804db82ad71625b141a6c40fb98e7837..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184 zcmX^0Z`VEs1_pZuUM>bE24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00Sb_Nbc26o5b5PcwKWMFa5Pf2BD;P=VQOZ6+wO-d~aNleNCif{$zmlh?b zx@Cem96+^tAcI*H8Q6jLfdC^A0&N76oIsu|n9sn#s<oYgaU)oo3rK>bfr3Di8%Q%T G@BjeV2p<su diff --git a/AST/Bool.class b/AST/Bool.class deleted file mode 100644 index 5e5fa457b11b347d541402c3ef507b8fbce23e45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmaKq;Z74l5Xb-9mR@_D6c9v2p<vPLY3u{kXv#&RN!1T+Fu_mTb^}MRyUp#E$eZ{W znrJk9@Bw@%<7|6@QyV|r?(EEOX8*G{KYv~R0Pq}-UF48=Q1GyTB15Is={8<`7$-vO zNXZsM@o6L@^Nb<y*N@65q3po*un3Q#Wa$H?Vv5Sih=CouSVG0YvWFF{GOV2ObKZ!# zJehKWOUg2;W0FXoFs%E>_4YL~b2nE>+M0)TTVP|vhayz6&&|8YoRXytmqs%bDEElA zPz?kLZ%0zRnT&cO>GEDoo;80?X$IG*meyj_i!bQVQIn)E4kMdTww*k&Y8aNuHrgb7 z{92e(HPDqJc3f1k>tN4HyU$R&79PoSH584R{+ZfC-Zv_tJ3jiE4pVSe^d*;rSm;_? zso`YY%wXw5WITT)b}z<a4*ovFzwMogzG-HkAT1H{IPOG7G)vg0rbBJSfvPf>!Fwg8 zNWz%Y`)CI~!~Q=l&QtCnVA%dYN`o|O6T37+Ir_siEq02?%9FK#TeNP_DWIs0yTLcG zVCyTK&r|v~txLoLMHJw`&LRyMHq*Q+?Tn(O;0v7Zxbf*Kt2p&9(t78L-b-oM(wDdi g{LS0Dwx~u9cX7|wrHpO*YIr~=m#l}V;}JH01Eq_^)Bpeg diff --git a/AST/Div.class b/AST/Div.class deleted file mode 100644 index 28a2d5238d24ff9f140bfc225c3fc81cfbed0e16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1010 zcmaJ<U2hUW6g>l!-L6}qh}K$Ltx^Sw#g7*gjE163O|U*d^uY%+3lo^K?2z4o*ni^B z(8SoJ5B>mul<`g=iYzgkojY^qoO|!NbASH2_yOPro;XM#X(8oe1!;zjdaGT1^=TA} zD3U6ue>{`{m!V)tKa+vf&l&cL%>_^`<|w_hVKXGVa<U2smn^t0)^M4@GTfJPLIHbx z-04%~^%&hj7V8#rF0LTYkXgvb;AmBkA~E#*GlqPz)I8-AUiEp<tG09~gI>*~z2;)W z<V<%%CAG+r;!PJfuthqDd>|Ss=y3gB>OSov%>x}VJT1n9#XU<hnoe%J*fAB`T21R< zNHtWKL}r>Y5GUiIC&D)OeDYY)+0avF=d{!~?1&?24mLICz{p|99xA0H9rDo|q5G;E zWzx9k;692LN=8VTq3~C^3?^zIW(}BXJK`O!Lh8}yc~vvuH0Uu8y1s}CO{E6oQ7tZY z&hrnkeKrzH;2-AjZ@p8|(Y5(z%|bM|@3-hpYBnmQnK4p*;yDcN>mU$e!{_w8k%cPF zTTJ1y!Yw>v*!e${CSj@)yEGjM8V4W+W+tE3TXedMBz=HY-mjd4eWfkKZCa=BGyyI0 z>>@uSY>{PjpUhcb{(wz1Lt$ooX*H26l+Sqc<!@O1jtrTrWG-+WSY)nc>t>8*%x$uU kxl%sI%|)mw_YPeqsPqC^o1lC2@8bcTObG{gh{xFc4gLf05dZ)H diff --git a/AST/Egal.class b/AST/Egal.class deleted file mode 100644 index 099ce227fa25c5136e87e1f9defce753aa629523..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1016 zcmaJ<U2hUW6g>l!UDmBoL~E_BR;dET;>U{#MnegWCa4b(eel5yFo7-04DJq%{1bnM zCdMXx@CW##jCWk32*hl5?#!KYKhB-=<LCKz0MGEqK@4#V2^VWfGHljb?Mmb0I1pjz zDOr1e<Vo%Yf+6|Dlb(LcuwQ5{fT~N5;u{+_#WX%lxF4qA;DQC$#X2rB*uTU3+$TVv zPr3ujzOj_TK?WNZvMw$m$B<sA$>3;J3qvvL_)~^lq1Zg(r@Z2G*{`&8;K_c~)V<<j z(-cki0_ACuCDvOmu3?+Fj`&d2mF#l;*3$#pg_=tpGCVFUCtLQcsA#6S<6_rzY-<(u z!H}q{9+6BpJt<yIMja8fdB-P@6;4MTWp++WO@gjC_RJyGpy?bMJ`9;7rF5tRK7J|m zK=s0O5_cTjMZrSRFex$Q|5EqlsTzve1R`?BysK3}L;5sNYX*#xKIgLMi!k3*YB(8J zm$}Y){t0YP$6^Ki-5maP=R|aMb$(j26m{<VEqauyjWUsDERu`E;J%Pj1a+U&1BVtW zq`D=Ft2(#vfMNIlP|`v~6MLkO7zqMMfEoSMdV@~45vLEZN(bdLurIV_xJhdSPZH1~ z&mMBKfNipj?&DeO^B=IuW<r<|Fs&wYnd%vDuJjeDZ%C85Oy(R{fyK!6Ow9;s7P&*# lM6Q+2aD5SK+Py`WF={<e)+Xpa{Rg;5C)2_q?&Bf0egTgZ@`C^X diff --git a/AST/ExpressionA.class b/AST/ExpressionA.class deleted file mode 100644 index afb7c6c77ed45410d1992fe6577007d186441a6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235 zcmYjLy9&Zk3_WRU>!UsfR|hwBupgi(MRY1I757#za;4r%AEKY-Bslm1ew3K&WFY4x zImsdK&+`Rfj&>aeOb3>W3T%SohZ~QRU{9rz#f)GMhFb?!LR)Lg>p2s7E>q<btVOyP zECf=Cb$N<Kwu$0|C-oxr^IV+b<VNTYhQTqqL|zi9gBKQ=REG)gglU=W#7gRe&Y$mC pFI#;${F)8}q@QD~ao1xe=E~>+x^ux!j9Lavi_n1kn>HB@w7#imErkF8 diff --git a/AST/ExpressionA_Binaire.class b/AST/ExpressionA_Binaire.class deleted file mode 100644 index 30abb9ba7d764eca7e7f57c5047adc0f7c4ee247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmZuu*-FDu5Iwg|lQu@XxbIsdX%vh4By~YWpNc-D2*n3U+gPvIM3PkWuN2%6^aK1T zac--))Q5YRId|sF_V)h#3Sbj+Dk6v~kTk>~GbFdHQhxX9!gqpzd+rv4yvAJ~ZZJfR z++hN7BowF`x}Y%({)s-`=B~|shqCH+vwBKKy7(uiAT)Y3B!z%n^F1CqaipoVzLX6N zeK{K}=quSEr=XW1b!K1M`E%Q?=MO4pPBm01yI;cq1{sv#x>51YsY;)bD}F~>q0ilV zK}80`8b(BDJoMVEiZP5Un9wkZsbBi-f9mPP^BZ=^uxfN_9{r%&4Hf>W%%B?`b9WHA zLk4Nbt5N^SB6pqrW~1WxCA%UfQZ29PSDigBoS`2V`P%WKm{*#jbwucr;?YS6AvQ}G zr5D3A7-q;?5oZ>E<|CLne-Fi6xJUObQ4F($8AyZ)LY1%!J<y1tHMb&Yho3_0B+7`> rGb#B6nR3*8K%Z5X%sVI#7_!PSvbu%!gwdN;vXGZsNom3?c@gLzy?%%H diff --git a/AST/FloatT.class b/AST/FloatT.class deleted file mode 100644 index a17f71ac6dfb33e7fda3c10b0f23021dcc80644d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 847 zcmaKq&u-H|5XQev(l~M5CM_wY{3&UhLShhkfS{rfVSyCNAyGMSS|_X4jk6nhHx+#o z9s?v0s0SW^he93KR%;;Q;N97o-#0t6o?pK&egb%br#5oPTPQeKLXn};9SqyAKF%Vc zb)aOIq4+$IfjMBvH(N(#lu)){J6MLpV8^r<DsF}p=g~0(^K7i5Vxj6_4eONgl%Mf- z$mMZDGL(!Om?)4$Z#2DD{{~3hopma$=3pb1Z%+9{^pqTN^FA;qWNE{t(F_IB9?{lQ zV?o#S11S#YQ(r_w?uX>5H5a6&nvLpeEv9~WPKSY-M<d|{v0ypr<XKz~L-nOnMw^Jw z-U@S~#=26(LmPGMSlEq=+hb_llpe@4H4*KkgQQ-MkBo}wmQT%0k13cWea+=K6uQw@ zYBHa7GFbW)8P6ZW;rUD~z&~X8cmAmunNIc*(iA-&hJ(O}P6_)A<(@X;(62L_!FeO4 zh<YKX7t$7*4Ez7IxTtaqF2nZ!Q5vPBP3+JV<>(*Nw8V2nR-UXS+@^JtPA)~`xb1!i zbN9Z%`f^3zp>>s5kg7nsGFC{jhOJarr=3x><bH+q11q1eRmCfRmDao0^lnPqF@1qs hz~6k0?z%@ga=4ENab8kv)7QWwI@x4BMhj1{bqVdC#a93T diff --git a/AST/GrEgNb.class b/AST/GrEgNb.class deleted file mode 100644 index 6d14eac0ef889fed381f6949537e9a84158b9241..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmaJ=U2hUW6g^WY3)`(wL~E_BR;dET;>U{#Mng%fCWsFZeel7|!UVP~Gq^i6@=yF3 zni!k(!5`p{GTzA&MIdIgb7$_Hd+t4V@BaLC@dLnfJhridn1#55RU{ZTYpr(W_|qs5 zVdyDY`*7q*?gfG&@zj%^e#Wq0Xv~4C3y$L3B$5>KA~^oobW^agX2Ef=j!O)-38$N0 z(<Mlck2`(h-&i2Ak->(Atb@zQF{J0R5|LK5Fcd@ApD^SK#l|T=;}xIFUZtf2Pxh)N z^Hm3%CT*e{C{K$l>E3d19owXK$OodXWQXf_p6=5w)LiP2;YneUY|*nMqv_|4gI!Z` zQmd#AhIn0dNo2a=Nzoh+T@kdo>yyU{Cqq}6o!wI7pd(H^b6AV|b7&MXWR8^5p$_=y zwa|Ul4butSwQ&yx3q_-)#E}0h-jio)Af`Qt<el)2Rspr?^Q^EbFd}`)W!D#BzM<4$ zJgP3Lo$>q=*q)5U68QTW{2TXFbaZvLUsH-Y_x%=qmTD4Zh7@Db$k+_dD=9@#_c?vy z&_abKZ$aX+$}K!(*!@40rXiAvJ(`de8VMi{X8r+MZ_?=wV)Ou3>7aZL_La5_w`h&v z2?AQ=*+Xs`uuYcHeJpEz`2#j=CWM(0rqwW)DWCD?O5c$Bjx?DoWG-+Gn2%h~)XXSN pBX`J}$koz0Zp=eXxwq+Zg-XwpO%imU-UHmHlPTd45AX<EzX8p;^CtiR diff --git a/AST/GrStNb.class b/AST/GrStNb.class deleted file mode 100644 index 21cb2dce4c70bb0f96c73ce64121734939d2edfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmaJ=U2hUW6g^WY3)`(wL~E_BR;dET;>U{#Mnj2J6RZyqeel7|!UVP~Gh}yY<e&I6 zG%+^mgFnC@WxSImiYzgkojY^q+;i`_d-vzBiyr`<<FSnuBrGHytRls**=ToaFFuU} z5r&?UjgLp3<X#{cQcpeU>1Pc4rPczd9&?o6rIDtXmqA;fxEa`3v*0*b$0Y{aghw|7 z>GMf<K>Qmq5*s;eSjaoLi~>V;AuADS)d)i|a{Vbop;T_2@-trZx$M{4I`Cw_ZZcnW zuxZk!dV%t^$dm3Z2iLJpYDau1no4%Le(&i4?Ly6^4jG=5;$(5pl8mOGI}UbD#c8dg zIvA2o)gzJFmM6u@WaNsV!(E>|RyZBG%Ixg6ngm^O?3u$_)SpA6h#_~Rln!;k$8Url zs9u;&;jWE)C|M{QEft31U-6ziQ$sQ9K_u^(ceM(rO`qq5&43Z<D=vG!2#YPHhLdqU zu6EAzPhe*{7E9nC=J0RbQ_<D+`F_nPn%wu>^jYd@R2ediMZ#?c=e3j~X!@K!acH4N zlNXb?ta1wv8Fv2<rD=#{Vvi<dg+>BMf|-AS)|+&?g9JT*RXM1hgMFnf!!24Pc#41) zdG=741#FXLbf3suU;cm%n+aiNglRR*Rmx|)g~~T%z9UQK3YiOB0~RCKa}6^}v&bE? lCUUiMjvI?mQ|@iLT%pp7WYYxQr}qH&>10Yc!~;CS)^EO<^M3#U diff --git a/AST/LoEqNb.class b/AST/LoEqNb.class deleted file mode 100644 index a655e32420a284d13eed069f04ff0b515c920f17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmaJ=U2hUW6g>l!h3!@-qP5mmt5ktv@#Dn=qoJgYCRiUJ`rv~ZU;<l~8QdKj`6vDi zO^i+Y;1BRe8Sl76ktJrcb7$_Hd+t4V@Ba9C@g2Z(Jhl--+(N>^3X%*P^;Wxj^l|Kq zAaIqezdv*(cYVQ-eCkS9KV#S{HWxs(h@<o-g%rg!)zOEOP8v2=EjSL=aEZY-;o%KI z`h3zI5dV6F#6}kD7IF?QBhQdo$Vx<7)q_BcI^L8aUo16G`5CWzT=uIi?YpvHGnubC z*f436Jzu$6<Vg3XgX`ELwIe<h4JEr=zjgJ1c7f(n2MkY&QL?CKNk-GpZ3jE1;*?fl z9Sn(v>XFDy)0N_6GU^Dw%{v}>tYA9oD6_L$YT|drv1<;iVSf&cB8KdtQaaE+AHNcM zpn5?jiMuxLp=hCGw3HbNf5p4<Obx}X2cf)U-qp&dHhr2GHUoyFFSzV^A}BPK8cxQw zsM<NtKY{J(SS*3Ro5R2EoQkfl&G&0Y(cqrfqR&!Gp~8@6EEH}tI4`9Xe#7JRi31B& zn!Jd_WtCfa$guN&=<m@qGO<e&5~Gm-5@6;Zp!Fu5?jTMNV3qeP=U`uG%W#X<5S}EU zMV?*cX8~Je8QsTo*5^N9!)8L58DUxtbA|F5Z@&B$>2Ju8xkBaw*MP;ywQSvt(kybD mtchGHpX0_N)RcRhE@M=BfozJPd-U$(KAlVn2Y7%-*!%?@a`Qs~ diff --git a/AST/LoStNb.class b/AST/LoStNb.class deleted file mode 100644 index 15502362c45cee8f74cb672caaa133f51ab525bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmaJ=U2hUW6g^WY3)`(wL~E_BR;dET;>U{#Mnj2>CRiUJ`rw0^g$Zm~X2|Z)$UpIC zXku*A2Y-M+%6P{miYzgkojY^q+;i`_d-uoBi|+uQ<FSnuBrGHytRls**=ToaFFuX~ z5r&?UjSokj<X#{cQcpeU>1Pc4rPczd9&?o6rje$YmTK!0Hv=1M790obxWr(a@aTph zeLm?9h<_tSVk3tQ3wZ~ZQDDd}WF;c48eu3#u0Lfcl*+ABe#UD)m;G8>2cGQLP3Ef( zHci@8FHoKqdD6Y*;5xQR?T8OWQ^_vZ?>s%AU8uR#A;XhWoGk8HlF{^Y$HA_tIIT&( zse>WeR6P=zZFy3hOh&E<I^6ZiV};X^tIW=Bt4Yum$DTQ?Mg2K6iWqW7O6gDseEeGI zf$D|X6z<x%hmwV|(NbY3{uS@ZGc^>m9z^nvc~`4|+Vp8&*bEqvzT~p!i?G;IYB(9! z<7($T{{(iXW3dGOeh&Y}Jr!MDpYPX<qRD-~O`oNnMwKDMSR~wLa9&9%f~L>u6NeUR zG<h+J%PP0<kYV@#(BGqJWMYpdWQ9foNP?MvfYzIIx`PBgfK@rDo`Zd%EyFEZBY28{ z7J2qim<4Q;Wptm&Tc7`c4VwvJW`t=q%vH)~yoJhFWWFIw<_eh$Tmu#(*K-XsO0&ov mvL<r1a*i8|P*d)0x?G{si)7OT-KX~e_vvIxIK%@y!qzX;H}i)8 diff --git a/AST/Modulo.class b/AST/Modulo.class deleted file mode 100644 index c700d73d6cdda889950837839ab01726ed77abf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1016 zcmaJ=TW=CU6#fQ~h3zU7(OPR;FI0hI@$zDV(NJQe39Szheel7|!UVP~Gh}yY<e&I6 zG%+^mgFnC@Wjy1Oh%7OiopagmT)s1BfBw4o0pKN`+DIU2A?4r_(hM8TPPhK*(<BgK z=qcI!c<4#)1%e^{+>@Su!LV0uFM%2{N9A1x8Hzbp{i(0Au(4*rac~(|7;F<BeIdwz zPkTekzaC3sBad|p1qWAAWXLU5r9@ga!%&P}f5uQOSK6oijMsfG2lb8)JUM8X%GVui zn6l}9pgb)K#Cy}hO>7a{F&~MRl0B~9dwNJ(sJYZ3!?SWcS=_UtqM7HmgB{axMysd~ zhEz-SiDa(rNpUhAyCUdv*C&q^&c?1Xn%z;;peK$zW2{B<IWUYE@`p<4PzQW+Ec8(I z!(1BoZ9G8PLd9^YGL-(3_vD!xiTMm7dPlscRX}6<yhv;gjFP_QvhRzq)K+RVoiyTX z7d-z2c4rf@0{&qE|JFSfJ>6KG*E~gw`+kS6rIA66A<LK{e&X5;&KoI3(DFH5acH4V zn-`<Fs&fmE8Fu~;rEQ34;tp*{f>r`Zfti1R&Rw#0k)#K(s{6Hbu&<;t+@{k2KtM*J z#W{G3r12&T))x|sK#MF|Uph_J8r3quV)Yxc-;pD6jl>0R0LziteABGaJaU`lpTgC1 h+**d3R_{{U1n!|kGDFZkdiU{=ESt0gJi-%f{swy;^fmwh diff --git a/AST/Moins.class b/AST/Moins.class deleted file mode 100644 index 09b7db74821e5580e0d1f0c3762342bb10532b96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1013 zcmaJ<U2hUW6g>l!g>@BL(OPR;KUxKf#g7*gjD`{$o6!0I(FY&QEKJ%d%M95a8u=&w z3{8wp`rr@nM;Y$`iO3SO*|~S_p8Ij`o?pK&e*$=o=PnXRI!Jj~LYiT<-fCChd>(`% zilkQcPy14F848B<OR1!J#jsOs&Vg#NK<Rx38HT04mMY4^#T5shhpV{8khR%I_5&3? z;ls`;RbP&kaFNHdgB1_gQDDf;^<;33u1AsR`@x8zP%Jgi_&KizT%A-~CY0)=W*gu1 zuxh)eyP=jwtPtxp54W*ST>HEy8d`O@`5?_Hd6D7D&{!{u@nZ4Ff{u2Z8y+_8#2KR} zb1<YDx=SQ;O{v83u<who&HaEPPBiNK+IntF55tZ)kmJjEJ$sfALw;Xt6Pb_?j)XbY z-6)sFLl=)wbWpNX$_(3oxl47fdt$nR3A+Q{F*>9zeVOGo1x|{-<*FNqXuGL(Z#byM z$<9RnNo<b>VgdZ)4E~*eCOW1zyRK=81`mQ3{gqk<6%qzxt)VZEeV4&IR7!-6fYTq2 z98^hmF^Y>Ockq;9^Z!s1!-OX8kw6lp2p|PgE7Ejs(QOM!dH|=qTe$%HMlQo$IxPSM zWRzN%g4fB~XmZ8*N@f=5(2dkfr>$C{UKUs=e@FHQa%66hxx_7CJ~NxITNO<+H^`0~ jmoIQ<9%@IuPh}H$fNioFg6`0}i^p_x$=kydJj2=_R`c@{ diff --git a/AST/Mult.class b/AST/Mult.class deleted file mode 100644 index f6230546d8631f3ccd470d1b98967e74ee8ea7e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1010 zcmaJ<U2hUW6g>mTF6$~3(OPR;Kd1u5;>U{#Mnj2>CbT|4^uY%+3nOe<X2|Z)$UpIC zXku*A2Y-M+%6LaeM3$J%&b@PU?z#8exj%oM{{Zj;PaGtWw2*Rf0cnQyM!Qpc`Dq-A zDDstTd^qqW_d~&ue&$PGKWEr2wU$8jSfKpYhRu-rsQf4c2Nx~4E-v9RgKd(JCV?i( zKA&_4#Jv_HaFD~Ag}jR^C@^G~Dl#})HKIt2ykN>uD3x0${FK)MF8j5%4t?3Lo4VIr ztec|gUZ{L6@}zmg#SLtd(h(nurjlK*-}!n#UZlCy5yR6`oGcz$QPIqD%f+_o*w$*+ z2Th@=dL%O2@})SQj64x`xED~wil!q^8P92}N!S&KzPV(~boPxNhTMTtI?^E@9|=8B zy(pW;JqPzuvQRckDh$QH(tUZVhGIT}nYcsV)heVReO{C`2hK=eaoGz*RBS0VoQ&&n ztqYNV5<AneSOI^(fPdqih_0?LPHRrl<U!D;N2%MWl4!<^>|@Via9>L)!e+qffg=kw z+PRp-Rh?US#IXH;DDA>bCT`PyBxoUk6qwn5I(O){gCu=`RoSbafqf;H;TD|+00J^f zEzH52WKA@gx4w{B1X^^X<)zcGR;iW&7AoJ6`Hn1^t7Oh`9azrH<Qis)=9yb${}isA h;pQ^bw0ehV6S#{aS(~7{^zY#T-5m1v@eq%(@f+6_@!|jg diff --git a/AST/Neg.class b/AST/Neg.class deleted file mode 100644 index becf0d8ed78719a4c9dcb0b3fee726b0daa2ef23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1031 zcmah|>uwT36#fP%3+uMDh}L?kR-po|#d=E&MuVh{CWt>EHO5~9jC9K~Lw1Hn-o(ey z#9Nx^1NczJvt6{bC7R8inK|eC&Y5$WpT7=%0C<82HX?{xh&h-+oFP?dG)r6W2ENeR zRkFemf8<KnJZ6aI3p+_9khEYsI0J{l3ea`YB_sDqF4RuY%L&XeB&F!)bDLRRurSXs zzsL7^$>XwHdfD0&ZDS*aw1czAFeHp>7~hrTEt4<Qj-a8oY~wr@EnIN0gp0>~{h`I* zD!<PS!^8Y(`kM(=7`!|+NCcN1TnR2@8&%O-^jqF2O(nbP;2KsK7W=#>s!F!GdF7g2 z+G)e3(G06o!cK`1<aerEg&l@iRdob)qUK6bANE_qZ}OH$8oQx}ep_t2!689q-w3Kh zHF&C&(Z=V47sBkSj!wl<uu;UCh4tXNw-~ZVg>>b<>WNZVt}ugb-Zsh~F}$C=`xqEH zea2<S6FOT{sy7^zC(1Z(%!K9`u{j!uDe(U^V(g;IJ+I*!L3321oEas}>n)qXc`l{! zs~)G;XbX23a;Gw!c5w^$7?%GHrI`=2#0rgjgqqIiqk*Sgly)<?PVxqwiewG!cJV7% zaqTm#kB8_i$vMIT^s<5{Lmvy~d(2xWAB?P-^la=qQm>=MPq4mVq45ppKK%6%Kg2jB vX%NTE9IXL!He_5nz%p=>lA_Q#0!6Tjo3ti~lBa(Ix9MclZWDKLA4|Uh$p`wz diff --git a/AST/Not.class b/AST/Not.class deleted file mode 100644 index d63de49f9d2860ddb60f59b3fabee95e50dbbe16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1028 zcmah|>uwT36#j<W!n!RjqP1SCRj5E~vECAc(I9D~3DzHw8so14#&*jxLw1Hn-o(ey z#9Nx^1NczJvt6{b5Y1+1&dm9~bDy8T4u1f6f(JGth+2p_h$F#}t~Q$G&3AoYXzeOl zWk@`7rE4BDL<_~86p~0;upOL%!(avIZDmNw{auFn`YC!PiCKmeK??beoGx0JW0>3L z2fXZYxm$kO+81qOBaMuMv&b?ejcOR*m1HejDAtdm;cdmnc`R7C;9wCKPuTiHOT1Nn zk5fz!3zPIWV^^W`%2X#2Ty}6J2*@_7s<r5~ykUk)cGbZ(EHf<hcvsYvY;*I<HG3p! z!==#-D^uJ~@e$-VQLf?+L#(Dcf;v%mrPv<yTEcJgmPa>sLk;}4*m8qIl4`mhREKKt zR4Jp4&-*Wg*;5^zPM~O`gjEY`LAbXVa>s>q<$>yoa#*e~gDu`R${#YkACG+m42?eH zvf~Mzt1HzV^eba!95rU_<^-`h?29Sz|1@G`qQ*V1;Tl16RAz`XO4?>{o=YkGn#ZXx z+QJ=%{6u=wqPB34Vd>vc8u&0pEYqw<sN;-2ns$<+B*k%^)*Eyxkv7oVrLSP6)z7d# z9-(uz&Jq@&XBE5``dBdBBi<U>V5H4vW@6uwejP1+g7pRSjc+*j;je|n5yqjFrf|f} q(;hHqLdK;-ECHt}X>y$>Py{QuNqdqg1^U-<n@%=K8@P-6So{r-y!q|` diff --git a/AST/NotEql.class b/AST/NotEql.class deleted file mode 100644 index d1f224d1abe23b7642888ad8f66f8e03a4e71d99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1022 zcmaJ=U2hUW6g>l!UA9}Hh}K$Ltx^Sw#g7*gjE0gnnqYl^=z|YtfC+3_W^i|C<e&I6 zG%+^mgFnC@WxV4OMIdIgb7$_Hd+t4V@Ba9C@g2Z(Ja!O6+(N>|3X%*PwPvew^l=o3 zF!YqHy+8CM_X5F?eCkP0KV#S{H0D6n1xN9X4V%F}QTph^nENR>She7~Si>a-#}NF! z^NF~}$DKZ9SYM!Vkioiztc%OYF{J165|LK5FcibKKVirfij7l##w$LTy-HIDp6pdk z=Bq9?Oxk2OP@Wc9QoiZpI<`pfkPk#%$qv_VJ>92WsJYZ3!;``y*`jAjM$^%47dxh6 zTdSxJhD2R;No2a=NpUhBwnfn5ZJ#_=I2pE;**Q%$4m#r4Gl$ivKL<t;L*`H^9qNFO zUJ2b--7uZRT?hA2uuwEwN(}kG;yrn$24dQSNZv8;XcbVKKFtc70wdBFTy}jC<{L^4 z#-r+@+8NJ3fvw3%EP=n9!M|>wijJ<%_G?N}=f2;h&r-EfW=Js>33nLWmr{zL?sNLY zp@j;~-h#wsm0Nhou=9T?O+zFTyEGv&8VMi)X8r<NZ_?=w;`9JkX}^39_Jy_#w`h&v zNdj8r*+p&|utk>9eLQP@{sT5_CWM(0rqwW)DWCD?N?(!shBTQgWG-+Gn2%h`)XXSN oBe%(#$d%GLZp=eXxwq*uMy2P;+63LBcOUoZWJ)-|13bd!FLW66;{X5v diff --git a/AST/Num.class b/AST/Num.class deleted file mode 100644 index bce82d1ab9ce5e014e9c95a84de02e8946045055..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 843 zcmaJ<-EI;=6#fP%yKL9e*4A39l~$??8hHSW28oR%ST7*;!mC-B&@Iah*%=!9CO(EH z8ci>J03XVDrn_lTi5Gk3{CwY;@64W`zb<|Nc!4J#a>zR<_*g=bq1@{A8?Qc06QOma zWQ(ErERvCV&X5mk$0fKZIq-Ze!)I_T`e-(xqO_KEJglJXVAaPO)*04L`5AA-T#gzY zX~ak*46ac<lSFdFuo-k}-D^miZmyHE4Ii7f!PbP2MO(=MH}4{ILY_8U8qH83?lB#0 zH58<~8%aS*LXq@&7*l2=SkRimGpePvn1t~;1wA!O2I4TX1efSftr&*Ymr5CJ5<Yz+ z%!wN6auN4ERIuk@-zs~+P`%b2$ul(;jZ}Ur_K**ZO6ZD@!Q6luFm3vp%V8{ZwX4*4 zHf_$qvUixv{6XxWPsIZG`#JpE@Kg*;bN&Ug7HuBKy~v2BivxyITN`l{R+z`&ccc_a zJLdE}+Cji@@Xv^glsl+1?EW80Ym|<OJ=&lg{a{)ayF=vV$y>rLvRf3@scP$9{To<) z=PR7gm+0GMR|pFfQGf%xiL_tX&Uh6%8CBi-7dYQ><I@$Zc$r@&d*=$hpP@aAzQ9f3 fZ@j&0hkE327x!#mV(ija#Y2ib@*bgv$JqW22~NZG diff --git a/AST/Plus.class b/AST/Plus.class deleted file mode 100644 index d0d6755c7957cbb093f0794617d5b11c2a599af3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1010 zcmaJ<ZEq4m5PlYrgYy)MXsxxaFI0hI@#TvNMnj2>O|Y6k^n)MF9=Cxl$1S;A8u=&w z3{8wp`oSOIk21~*iO3Oixt-a`GtbO3J3oJ&{{Zj;Pi!QRw2*Re0cnQyW~W<!`Dq-A zD3U5@emsx?m!V)tKa+vf&lz^h?Ilnn7O1?-Aj6Ov`;#aO8y77&4ldy`L&hY(r8rUc z`J^`>?zI?!jXc&Y6dYVZks-HKk-^rg8AW2``csBtxzax2r@Zd-pkMFkPzL>mse8@A zx+$9WLM62*kmd~sH?T=cM|>z+D(G?jUg`mPk>-J>ww{*bWbw#~ie{Eu4z^9l8Lei0 z&=gwABaykb48-wd<chG%U7sRWG#$Chcy>ok!k##k=8`qj**AI^@&`)kNQZp<TIhlD zqFfsHY}`lLLd7VlGL-&Gm%*tTiunX);tqLFtB{8Dc~RCJI3s<<1J4&xsjbv-GH%4R zE=2xG>`upG1^mMT{*8Mgdb+VVtvN-D`+kQWrIA66L^Ia(JbCQe49-yyh_K~zdf>=H zopvrJaaHFQ9x-hHA4<D0lZo539|>9rAO&W&pUxe+?I1}XU{&{OXJB8+Ww=GB0f2yv zQj2r&CRr0r7OXF17J(MsXnE;0tTn1-fW_)JWWOUv<|>(UTnCmjv-zf3qIu>P**}G= iXSlfxHLczu+63;RL^eavUHbR%fNnN<`*?`Q*!T_Pknza? diff --git a/Compilateur.class b/Compilateur.class deleted file mode 100644 index f5b5c61d9646ce29d806e9596b46a315752f5b44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmbVR3w%`NmH&U4Avc-aBtsy9Jb(cN@_+zZloCK828iTAlK@Rn!;oCUz+@)O+@XMv z;-glrc73&#+FDAjsn24fCK{BsTJ5&0-L>wv?%M9I-P&!tYiq4tA0Ycb-@TK`OZ3;k zoqO-O-{YMBIp6=B@7^DO@Z{3~&R1JAkp_<euZc-WSMcu+?h7ss2P0jJn-9cot6RYn zP1p+gb^1vtx_DD86tSD_m=)}<%0Py~w3c9xbuf^KSb>`TJuxdD4@Dz^6#*Z7$TDD> z$VQIBlnDk<nA9V~ar{ze0%vNQ!mg^aEe8AwS=G_*o=`YwTZx#cn`dGQrYfX`A|v&x zjr1gvdijux0u$3PT_JsCC=#+)D@=E%pbaD2mTi&NMJ9?-!q(lvP^6)S>Xw$(t!Zvq zoHA)ml@Bv9%Rs=yY|K%}9rIklXGhn><5u^M@BxLX9AN~Uj!k)l{VWsnFrUD62lrUj z(MU(o-WsxZ@hWZyBX(S2{zPbuA50J~HBlz;8XCxOBm)%+<<$$UxE<ILvLf0qR?08I z7^muf<~}>LH(>>4&o;0~A-g5I$BNW<#cE=)Xv~MjSYlwQiL-Ie=$Oz(aI$^DaKdWb zIY!gQ9lNa#yJ|wS70xnnu0qbHU@UIc?C-F8Y{rRTzud$p1$$pgO#@W~aD?NB!I2KD zOsr<`GFo@HcM!Eix7BWo1stQawyaKDLvQ6`jfu4~w6}vXlu5ybCTg&berDH*y+=XS zO1ljvYH^W5h9hpLWuDTqTIo?|q8<%Sk8p4)<8GUlZ!+<z<Vams#6UB<>xk$IhJ9$l zW(mM83iC?G1=2Wyg!-qcz4TuntLbXk;loyJHn442*ldfiO@x=a!n&v<yhMb-VPVZ) zX}Mj5ovyGUYS-+gRvp;v!!mS<YP+<JI{J5;*ds7avaMLRWq`|Go3bgKi2D$hk$My| zMZ5ZFC_-6O2FgX;ge@J7oxu)Sp9c21UF#EJ+lPd7<ytVL>xH3xKI|9C<*r)w(auCT z>ceFs{H)uo!RqqiN?av6UM<ULLbR?;wvKX|YjBl;&nG2`Zt>d<CT_$R#3m;)3^yz? zaWlSX;O|V_f?N4m2Mf=k?qHXtkT=mXyB&8J_>ze)<0}f2Q;WJbVq0BSj3)O;RP**j zn2bSo9S(~{Uu7^dM(OXbxge|yM}u~Y4|n4m29B8cCXSL@Qj_TCY^$emZziP6bw1pM zdt{Pt%OvY$l3v#xYok%R|32Jr-~kg4;-OJ?$WtrG<zwnehHodFrp<?Y@m-nbm`u}F zw#5U_A$TzLg5?7Iqb44c1tV*T3#NUE1j>N4A0#tPOv2+q7g~N2T?U3mF_1$sGR;#a zp2i8uE4$l;;X}c2=%CfvPClg@Ra*wWuduA9sj0DPMWERtPjm)4g5hw$js}D@>{z11 zj>ZDfodMFW9qI^Z+hdi1Kn9*ssLc!n0<F<RpgTb-waA)QERcv>fhPJnWS5o&*g0<5 z0X_&^#I#vm9f)d93pBT^X{oK2iFO9VaVrBqRG1;dbtWXSxf2D*8di)mM<bO6o*(6N zmxrGd0DepWnnT?^VXJyqFy>@lAO0TyAdtSGu<+wTTFbB#<bG=6AMsBzpCHGq*-kK+ z&L#NAPE=*!XQXZ&jZB=INwz&b(U@&@)<im@owR0{$_@OpLQyJin-UQ_)IE~wU&hZx z=U=39u}=3byJFGL1b2ijo$>#biE#w+>*ZM=jBs%>F};FUWrSbqWj0P%$Gm?x@gMk4 z#<E`c?eS<LCJ|9s_aUP)QQQntPA>k-#BU@>(;XKJ$iEfQ3o`NV<m#6h_=CbH{+6hc z(f(JIe<Q^aM6}5Yc3QD2@r|_jlg#plaMYhoye0hQjad6haj)QQ6Mx13(XKAbZlKI1 zu1uC0`m#!Ty=&q<$x7Zmp-87V`=p6eA~5J|k%^tBO)e0nP~b+OwP{pNW*l(L(J~I6 zt30OiYD(o;5nCkbrZN<3z-&sGy{!lf1d9cX-&xQJI}~1A7mC|eS<0uf3}u=sTM|!> z4wK=>q~8t_5X-w<m1`=$&_`Bk$OF<l&s0+s%RW!AlUZ#PGbQVeHfdL2s%etSy>Zfk zfd-KknW|VZO?e2N^kt2Zic`0@%staovs8dwt3#*O$p}-njcCl}C#5NqsG37(s<{e* zQWyVi+iE9hs)JI^Gu3=yt86<K?6BIch{U@%LzSAUOdt^mg)W85+LsurB3UwPl-9&z z!2^P%PnDyKxwtvh6$#pj7$bY?7_e7vt6k0V$t$HSom@JhQhZ(=?PTxVx=_SwNObS8 zVlAQ+HEFhk9ee77J?_14c!|di#S(6~k{?k<OTp}@k&0>NAN9$kuZP77C8Zy_6w6pI zWzb1FpbfQ3s;xFdvDWhtU0txWaYP5ccEOU~pbed&xagjeWUTB6yLG>>Su?=8kl5xQ zK?0Q$0~9gc*<`?APrYUDigw0x)71u_s#O;mY9mW^RhJ|{%~qkvJ{A;<oj_n&%IbX` zi=SwWWzL-=>vp%HGw6n3q%&;A&#H??_au6%#z)i$$*7Jk2YRdtnve8pGW^F6QO$hU z9I~yd48;|d&mv4xU`HbS%zd&!QyYR|J40<!sI0a+LV<|hHS`4IXWlfdAa$6v5hkzd zaFE*_Mg?o%d8rjO%7D?98)~z{%riG70Xr~ZHp%KqD6HTX(kJPjyQfTHcb+pOiRpWm zd2$wR;@Kw!zCN=&=ebDAcYV*QM9#ukq`yVHPE(b<C*A1h<VpRU3zg^T9C5K)!j?;U zcbxT&hv%(*P<h7V$Q(j$Yab>LaA#bxbr6O1e6a9w%y<%Wfyc2x+LiO%i}`iDt{6n+ zllX*w)Qc%&MUQY_3oOAoSg6nISfr<^vw3|sO#WulTpzc+St#UvDdAXxJhsl^kh!Sl z^*Z>m9+R;JdFmYY$bu(sU}2MiWx4Fc%`FEMOBNDO#j`nx^EUd^2eEQ%`7z!rJzb8r zG9O+PaKdSd8uOZk6vyBu%^5?zN*NVavj=g(#y(W19YN+G*7qWvH}|s(|0;MGJVgD{ ziH=_6^kJi?4~>nz_{D^yh+fGt=JR?Lj}{(#cwEinu-_2<sYTronp(>%2GFvx_jHdx zBPHId#jO;#`l)2Hb(<DnOz~R3FD1T2i`yx#@MopO+qHNH#Z&zRE;&et7F!#8KR88G zykbh4JRQQa)&cB1p@DV$cq8Ue;SvHj3oEez=cAnds=!59ghSkLUq_GLh^4rL9{&pA z{yNUZH*p>wz;Zl{Dm=<wg9P9Q-1`0yYw#0pY=276zk&<#Do1(^8}K?ev47%-Z!zTG zWl*0&qcX5b`M5XDLksibW;KiZOo@*|_)o%XV5YfNElBh6cV2=1n>xzp+&#NKKg;ns z9vVbwoX;QNi2R$yLjpOQM+uJ{IXixy<oLN~te<ty4Q!X}SLF6v>d$t74$-$^4RnO~ zU+>RJiKAM)m*Ty|pTYOx_+P{|0$f5PwiD@2uAMHTx{GM;=5H7gbR)*!%el4vEU!L? zIBwwP_IB=Jzsz0h-8g`6;UN8Sg~l%*<}iN68o$DVg3;J<OYLG;=VJHlAY$XNbJvSt zm&;=^55Z0!4t9ov-RH+*r+c=K=qK388sFg0bwG*{yMzYmGa5U8O1xi-4+?hv$tm$= zT6_h?ZG<%AOpvybBV-+V36=!!Ijldc@I^v;3n9IYVBSt3?;xaKBBXb+)nP*VRZ8z7 zq<7<M_y&&f-~9~qhj0&fjo&8Q-^&ocPeWXQ?C}tf!I*C!T#S3jT*7PbOo$Tj5}yf! zPvvn7k9&C>=OOYl9lOUo|FnC5g+I?hjVwAvuF8)kLo>E<2v@e258%)-|5O)RimnmS z=Z<O09l~`?AJ;#Mn+9>)0PZ}diEIdW4NJd1fNvesJT`=Tho#>cz{AJr82|WSr(O=# zG-(?jrVozM2anJPeGK4!1}`-tiCl{(=&7gZho?z3C+LA^i2Sq6T0g>&Y%K8tGwX|_ zl$Y=a{EU?Hvi3&~GPBpJ_px<yUS58F{s^A%NeSy_N{My(TjDp4`&vDdXB}#6_3GbA zleeR>HC_K2d5<)<X2_2}J+H5^AN`N8kCTIZnhSnMQv5wV%9ptA$aCpGVF{zWLJi>Y zu^rw(I{v6T47wfOrbLvvg1A4?hvSDaSJLwL-1Phd_xvo+LwJsi{i74!ejFzTtrZKs z-U0liA20SIyI}|~w=NpMznmDtD|E$+1NgUo{Avg{v(Ib&xIV2P)t-JddREWy8%L2# z2hB)pyw;<7PrvyHRjMR;pHDO$|E$ow_$F2RGjr@)B&NTxN_m?J;;&2!@38f|B=Yx| z%HJnhog`VEBDx=N9i7&Gn2AZJ*^sa8a}Bl3AWmp8@KWYU1k`)vk4$bMlbFpRVzMgI z%he!$Jq9x6!6a5q(mn~<9sCX;t7HSMEU)l-AIIwipk4r2C;;@~S1f^E9K?T5VEw9+ zr1d4VJ}qgz)MVMi*3XoT&a^a*RoHBm$=B6<->kCurrE@LmF-5Fx8AX6hPH@Npw4rh z`g2#q=xC?@{^K}ReEL81=|{P7LPL_vOS@0`;Z>7aJm#_9nt~!Vm0tw%QO+D&siyPo zbs;vWA~dODz5*^mo0@@$n(5M-N8FdD-M1Wc@Y1B)hK+oTMoOr65bNhLMIy31seCU? zagO-rk95cL@Q*U*j2>E9ob*sJJ)|5DB@L@&(Fiq%-+|_$K+VG}wSc>yQk<<Suu?7L zTZBd2SXXj$z8E{y5^W5>8x>^aokYq{D_lQ4#W<2k64D#7_&&-{6%#M4GkWA)DLAN( zmz3mF%jl7F>5=p3k>&Kr3VNi9My#X}t8jr@jSJQJtb#5W=M5H9^hU88a=&3ur}*FL zno{w%C|5)hg1V5()$lvbIx4rG=x(55wORpw(mKiSRI+e=@>#=4XH1X|*)=drwAMX} zH=h$)VZwNmeAA1mycSOn;xBEFX_;`4Ztzag5oy}!-A+cL<QTQSzNjDX58{IpbcjPj z^SSJy>bbBQP^ucSP;KJpnNMN0YQkF8LT7KLv$tp!eej&bGy^yL3rCQCp}dZA5!$6) z4V>$!`0;d2X*jG^0plL(V&tn!_=W6Jg49mWZP!|G%aQL#A$@tiJ8RVS%VN%2=UG)! zbQJR{G*nq~s_TWnVgyKanv!0vkX?lXg5w*DzS)T^)y1IMg$2A`q;~5mbKpINbQ-Rv znD0?FpL`{9C*SItT<MtH+ON`{M<H)U%=jqYX{B2p>{DsU%i+28PD@3Qt)iH#_Uidq z!OZ2hlQTGz5Cw;hpYBtWo=|+^&p+;E1^ND6$S&u}+d{X$?{Sv(*-SgdRHyL>W)ls6 z;Hc=+UtH-e*?;9>rp*#>i-zF0dgZ?;-SUrOL3!~xhf(Z3?(0`MeJaOO+{oE@@r0V3 zhON5oD|-HXg{RbXK{|PR6w@o@rsN4#n1=7E>CJkA*JJ}kC@T8Yi~%(}1^A^*=THav z+4wRVemSP7E9lWHNgszuHCJJYx*E&XHC&<Bl0UB|)g0o!<px}=ZY1S=f$zy~B9GpT zgOnXox8NpqE5E4R#)9!yd{^C}K`cWS`N&W!PZGqFTyObw9skSiT%J!M+fb{y-~ya_ zzPiAHnsub)N$z(0)L9Sm?9?LZB2{;><(lCNr%<<}IF(MFW=Gg;?MFAehvrugH>=S^ z56oZzaa?Mqerz063x-sA>wsF=uO^9yQ#0umLZb5G*QD#$NhvnjV;?-E7zyhdQjBc8 Y(nvE()$89zu4_rcN;Rn#wFQO$56dsHr2qf` diff --git a/Compilateur.java b/Compilateur.java deleted file mode 100644 index 64deedf..0000000 --- a/Compilateur.java +++ /dev/null @@ -1,422 +0,0 @@ -/* Compilateur.java */ -/* Generated By:JavaCC: Do not edit this line. Compilateur.java */ -import AST.*; -import java.io.InputStream; - -public class Compilateur implements CompilateurConstants { - public static void main(String args[]) { - try { - System.out.print("Tapez une Expression : "); - Compilateur parseur = new Compilateur(System.in); - ExpressionA ast = parseur.mainNT(); - System.out.println("AST calcul\u00e9 : \n" + ast.toAssembly()+"Halt"); - System.out.println("C'est bien une expression arithm\u00e9tique !!"); - } catch (TokenMgrError e) { - System.out.println("Ceci n'est pas une expression arithm\u00e9tique :"+e); - } catch (ParseException e){ - System.out.println("Ceci n'est pas une expression arithm\u00e9tique :"+e); - } } - - static final public ExpressionA mainNT() throws ParseException {ExpressionA expression; - expression = expression(); - jj_consume_token(EOL); -{if ("" != null) return expression;} - throw new Error("Missing return statement in function"); -} - - static final public ExpressionA expression() throws ParseException {ExpressionA gauche, droite; - gauche = comp(); - label_1: - while (true) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case 7: - case 8: - case 9: - case 10: - case 11: - case 12:{ - ; - break; - } - default: - jj_la1[0] = jj_gen; - break label_1; - } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case 7:{ - jj_consume_token(7); - droite = comp(); -gauche = new Egal(gauche, droite); - break; - } - case 8:{ - jj_consume_token(8); - droite = comp(); -gauche = new GrEgNb(gauche, droite); - break; - } - case 9:{ - jj_consume_token(9); - droite = comp(); -gauche = new GrStNb(gauche, droite); - break; - } - case 10:{ - jj_consume_token(10); - droite = comp(); -gauche = new LoStNb(gauche, droite); - break; - } - case 11:{ - jj_consume_token(11); - droite = comp(); -gauche = new LoEqNb(gauche, droite); - break; - } - case 12:{ - jj_consume_token(12); - droite = comp(); -gauche = new NotEql(gauche, droite); - break; - } - default: - jj_la1[1] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } -{if ("" != null) return gauche;} - throw new Error("Missing return statement in function"); -} - - static final public ExpressionA comp() throws ParseException {ExpressionA gauche, droite; - gauche = terme(); - label_2: - while (true) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case 13: - case 14:{ - ; - break; - } - default: - jj_la1[2] = jj_gen; - break label_2; - } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case 13:{ - jj_consume_token(13); - droite = terme(); -gauche = new Plus(gauche, droite); - break; - } - case 14:{ - jj_consume_token(14); - droite = terme(); -gauche = new Moins(gauche, droite); - break; - } - default: - jj_la1[3] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } -{if ("" != null) return gauche;} - throw new Error("Missing return statement in function"); -} - - static final public ExpressionA terme() throws ParseException {ExpressionA gauche, droite; - gauche = facteur(); - label_3: - while (true) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case 15: - case 16: - case 17:{ - ; - break; - } - default: - jj_la1[4] = jj_gen; - break label_3; - } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case 15:{ - jj_consume_token(15); - droite = facteur(); -gauche = new Mult(gauche, droite); - break; - } - case 16:{ - jj_consume_token(16); - droite = facteur(); -gauche = new Div(gauche, droite); - break; - } - case 17:{ - jj_consume_token(17); - droite = facteur(); -gauche = new Modulo(gauche, droite); - break; - } - default: - jj_la1[5] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } -{if ("" != null) return gauche;} - throw new Error("Missing return statement in function"); -} - - static final public ExpressionA facteur() throws ParseException {ExpressionA expr; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case 18:{ - jj_consume_token(18); - expr = expression(); - jj_consume_token(19); -{if ("" != null) return expr;} - break; - } - case 14:{ - jj_consume_token(14); - expr = facteur(); -{if ("" != null) return new Neg(expr);} - break; - } - case 20:{ - jj_consume_token(20); - expr = facteur(); -{if ("" != null) return new Not(expr);} - break; - } - case NOMBRE:{ - jj_consume_token(NOMBRE); -{if ("" != null) return new Num(Integer.parseInt(token.image));} - break; - } - case FLOAT:{ - jj_consume_token(FLOAT); -{if ("" != null) return new FloatT(Float.parseFloat(token.image));} - break; - } - case BOOLEAN:{ - jj_consume_token(BOOLEAN); -{if ("" != null) return new Bool(Boolean.parseBoolean(token.image));} - break; - } - default: - jj_la1[6] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); -} - - static private boolean jj_initialized_once = false; - /** Generated Token Manager. */ - static public CompilateurTokenManager token_source; - static SimpleCharStream jj_input_stream; - /** Current token. */ - static public Token token; - /** Next token. */ - static public Token jj_nt; - static private int jj_ntk; - static private int jj_gen; - static final private int[] jj_la1 = new int[7]; - static private int[] jj_la1_0; - static { - jj_la1_init_0(); - } - private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0x1f80,0x1f80,0x6000,0x6000,0x38000,0x38000,0x144038,}; - } - - /** Constructor with InputStream. */ - public Compilateur(java.io.InputStream stream) { - this(stream, null); - } - /** Constructor with InputStream and supplied encoding */ - public Compilateur(java.io.InputStream stream, String encoding) { - if (jj_initialized_once) { - System.out.println("ERROR: Second call to constructor of static parser. "); - System.out.println(" You must either use ReInit() or set the JavaCC option STATIC to false"); - System.out.println(" during parser generation."); - throw new Error(); - } - jj_initialized_once = true; - try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } - token_source = new CompilateurTokenManager(jj_input_stream); - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 7; i++) jj_la1[i] = -1; - } - - /** Reinitialise. */ - static public void ReInit(java.io.InputStream stream) { - ReInit(stream, null); - } - /** Reinitialise. */ - static public void ReInit(java.io.InputStream stream, String encoding) { - try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } - token_source.ReInit(jj_input_stream); - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 7; i++) jj_la1[i] = -1; - } - - /** Constructor. */ - public Compilateur(java.io.Reader stream) { - if (jj_initialized_once) { - System.out.println("ERROR: Second call to constructor of static parser. "); - System.out.println(" You must either use ReInit() or set the JavaCC option STATIC to false"); - System.out.println(" during parser generation."); - throw new Error(); - } - jj_initialized_once = true; - jj_input_stream = new SimpleCharStream(stream, 1, 1); - token_source = new CompilateurTokenManager(jj_input_stream); - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 7; i++) jj_la1[i] = -1; - } - - /** Reinitialise. */ - static public void ReInit(java.io.Reader stream) { - if (jj_input_stream == null) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - } else { - jj_input_stream.ReInit(stream, 1, 1); - } - if (token_source == null) { - token_source = new CompilateurTokenManager(jj_input_stream); - } - - token_source.ReInit(jj_input_stream); - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 7; i++) jj_la1[i] = -1; - } - - /** Constructor with generated Token Manager. */ - public Compilateur(CompilateurTokenManager tm) { - if (jj_initialized_once) { - System.out.println("ERROR: Second call to constructor of static parser. "); - System.out.println(" You must either use ReInit() or set the JavaCC option STATIC to false"); - System.out.println(" during parser generation."); - throw new Error(); - } - jj_initialized_once = true; - token_source = tm; - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 7; i++) jj_la1[i] = -1; - } - - /** Reinitialise. */ - public void ReInit(CompilateurTokenManager tm) { - token_source = tm; - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 7; i++) jj_la1[i] = -1; - } - - static private Token jj_consume_token(int kind) throws ParseException { - Token oldToken; - if ((oldToken = token).next != null) token = token.next; - else token = token.next = token_source.getNextToken(); - jj_ntk = -1; - if (token.kind == kind) { - jj_gen++; - return token; - } - token = oldToken; - jj_kind = kind; - throw generateParseException(); - } - - -/** Get the next Token. */ - static final public Token getNextToken() { - if (token.next != null) token = token.next; - else token = token.next = token_source.getNextToken(); - jj_ntk = -1; - jj_gen++; - return token; - } - -/** Get the specific Token. */ - static final public Token getToken(int index) { - Token t = token; - for (int i = 0; i < index; i++) { - if (t.next != null) t = t.next; - else t = t.next = token_source.getNextToken(); - } - return t; - } - - static private int jj_ntk_f() { - if ((jj_nt=token.next) == null) - return (jj_ntk = (token.next=token_source.getNextToken()).kind); - else - return (jj_ntk = jj_nt.kind); - } - - static private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>(); - static private int[] jj_expentry; - static private int jj_kind = -1; - - /** Generate ParseException. */ - static public ParseException generateParseException() { - jj_expentries.clear(); - boolean[] la1tokens = new boolean[21]; - if (jj_kind >= 0) { - la1tokens[jj_kind] = true; - jj_kind = -1; - } - for (int i = 0; i < 7; i++) { - if (jj_la1[i] == jj_gen) { - for (int j = 0; j < 32; j++) { - if ((jj_la1_0[i] & (1<<j)) != 0) { - la1tokens[j] = true; - } - } - } - } - for (int i = 0; i < 21; i++) { - if (la1tokens[i]) { - jj_expentry = new int[1]; - jj_expentry[0] = i; - jj_expentries.add(jj_expentry); - } - } - int[][] exptokseq = new int[jj_expentries.size()][]; - for (int i = 0; i < jj_expentries.size(); i++) { - exptokseq[i] = jj_expentries.get(i); - } - return new ParseException(token, exptokseq, tokenImage); - } - - static private boolean trace_enabled; - -/** Trace enabled. */ - static final public boolean trace_enabled() { - return trace_enabled; - } - - /** Enable tracing. */ - static final public void enable_tracing() { - } - - /** Disable tracing. */ - static final public void disable_tracing() { - } - -} diff --git a/CompilateurConstants.class b/CompilateurConstants.class deleted file mode 100644 index 69c8546ba136dbbd5cab74c09e0f9cc35539b62f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 807 zcmZvY+int36o%I>hZ!gox}aJ-7PJbj1<$7rRG^?uMkaBv$wY4koRFz77&>_GWB3@x zI}?2XAIkVI)C7$;|Ng$&Gi&z#zyJ91jff8DnMNy$vM26)w>EZzQOyo#elXH0swif3 ztZqZ6xS~jDtE7{zC|Y_Qf|81Kqh~#Dz3AYDlp@XOnpU$9SyPlST9##YnmuTC@lAkl zSg2kH<%JqTXJm8(uqj{w&dHu3dl!U?LYHK77qBI;2Pg^b0Imwu0M`Vz0cC+QU`L<= zxFJw1C8$a@jc%ss7Ts2qZ%-%h{IMH)^I3ZuoQ7@?o+?U))3;u5G;v3sqTDO<-)8nT zy8BmQ*5Je&hWG`_QlyR)rT>gOcE@usf}TlH{8w9I5mdWqO9VY@zuOXxEe4r_s9ihk zbek{DzO+3Y`+*-euwSkmqnh^g4NjOb{lM$ZCj)QRcL!rUN!ru-Z0L1;k;4BjS(Q6s zdX?_rHyRb_9^J<gAHY`VA^g#jKZfrwxdE>)c>{j1<WJzuC6{?99J6r?YEc{OA?zbX zkwhP|8(&E|5suhSlw-CNW6gHroUk2@S8Ye<wC!Z$oIz^5j?_7aOz;LW$!C$PTtKGy yJTlD}k!ySznc*Tb%U6)=yp3eOj?8fdnde>mGwprCAry6xajZm}$S&3udioP^GJ!<^ diff --git a/CompilateurConstants.java b/CompilateurConstants.java deleted file mode 100644 index 9d38bb9..0000000 --- a/CompilateurConstants.java +++ /dev/null @@ -1,48 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. CompilateurConstants.java */ - -/** - * Token literal values and constants. - * Generated by org.javacc.parser.OtherFilesGen#start() - */ -public interface CompilateurConstants { - - /** End of File. */ - int EOF = 0; - /** RegularExpression Id. */ - int NOMBRE = 3; - /** RegularExpression Id. */ - int FLOAT = 4; - /** RegularExpression Id. */ - int BOOLEAN = 5; - /** RegularExpression Id. */ - int EOL = 6; - - /** Lexical state. */ - int DEFAULT = 0; - - /** Literal token values. */ - String[] tokenImage = { - "<EOF>", - "\" \"", - "\"\\t\"", - "<NOMBRE>", - "<FLOAT>", - "<BOOLEAN>", - "\"\\n\"", - "\"==\"", - "\">=\"", - "\">\"", - "\"<\"", - "\"<=\"", - "\"!=\"", - "\"+\"", - "\"-\"", - "\"*\"", - "\"/\"", - "\"%\"", - "\"(\"", - "\")\"", - "\"!\"", - }; - -} diff --git a/CompilateurTokenManager.class b/CompilateurTokenManager.class deleted file mode 100644 index 3477ce7fdf63c56e5bb2e2d0a81bcdd0e6af6d04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7098 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 diff --git a/CompilateurTokenManager.java b/CompilateurTokenManager.java deleted file mode 100644 index cdfb2aa..0000000 --- a/CompilateurTokenManager.java +++ /dev/null @@ -1,449 +0,0 @@ -/* CompilateurTokenManager.java */ -/* Generated By:JavaCC: Do not edit this line. CompilateurTokenManager.java */ -import AST.*; -import java.io.InputStream; - -/** Token Manager. */ -@SuppressWarnings ("unused") -public class CompilateurTokenManager implements CompilateurConstants { - - /** Debug output. */ - public static java.io.PrintStream debugStream = System.out; - /** Set debug output. */ - public static void setDebugStream(java.io.PrintStream ds) { debugStream = ds; } -private static final int jjStopStringLiteralDfa_0(int pos, long active0){ - switch (pos) - { - default : - return -1; - } -} -private static final int jjStartNfa_0(int pos, long active0){ - return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1); -} -static private int jjStopAtPos(int pos, int kind) -{ - jjmatchedKind = kind; - jjmatchedPos = pos; - return pos + 1; -} -static private int jjMoveStringLiteralDfa0_0(){ - switch(curChar) - { - case 10: - return jjStopAtPos(0, 6); - case 33: - jjmatchedKind = 20; - return jjMoveStringLiteralDfa1_0(0x1000L); - case 37: - return jjStopAtPos(0, 17); - case 40: - return jjStopAtPos(0, 18); - case 41: - return jjStopAtPos(0, 19); - case 42: - return jjStopAtPos(0, 15); - case 43: - return jjStopAtPos(0, 13); - case 45: - return jjStopAtPos(0, 14); - case 47: - return jjStopAtPos(0, 16); - case 60: - jjmatchedKind = 10; - return jjMoveStringLiteralDfa1_0(0x800L); - case 61: - return jjMoveStringLiteralDfa1_0(0x80L); - case 62: - jjmatchedKind = 9; - return jjMoveStringLiteralDfa1_0(0x100L); - default : - return jjMoveNfa_0(0, 0); - } -} -static private int jjMoveStringLiteralDfa1_0(long active0){ - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_0(0, active0); - return 1; - } - switch(curChar) - { - case 61: - if ((active0 & 0x80L) != 0L) - return jjStopAtPos(1, 7); - else if ((active0 & 0x100L) != 0L) - return jjStopAtPos(1, 8); - else if ((active0 & 0x800L) != 0L) - return jjStopAtPos(1, 11); - else if ((active0 & 0x1000L) != 0L) - return jjStopAtPos(1, 12); - break; - default : - break; - } - return jjStartNfa_0(0, active0); -} -static private int jjMoveNfa_0(int startState, int curPos) -{ - int startsAt = 0; - jjnewStateCnt = 13; - int i = 1; - jjstateSet[0] = startState; - int kind = 0x7fffffff; - for (;;) - { - if (++jjround == 0x7fffffff) - ReInitRounds(); - if (curChar < 64) - { - long l = 1L << curChar; - do - { - switch(jjstateSet[--i]) - { - case 0: - if ((0x3ff000000000000L & l) != 0L) - { jjCheckNAddTwoStates(2, 3); } - if ((0x3fe000000000000L & l) != 0L) - { - if (kind > 3) - kind = 3; - { jjCheckNAdd(1); } - } - break; - case 1: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 3) - kind = 3; - { jjCheckNAdd(1); } - break; - case 2: - if ((0x3ff000000000000L & l) != 0L) - { jjCheckNAddTwoStates(2, 3); } - break; - case 3: - if (curChar == 46) - { jjCheckNAdd(4); } - break; - case 4: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 4) - kind = 4; - { jjCheckNAdd(4); } - break; - default : break; - } - } while(i != startsAt); - } - else if (curChar < 128) - { - long l = 1L << (curChar & 077); - do - { - switch(jjstateSet[--i]) - { - case 0: - if (curChar == 70) - jjstateSet[jjnewStateCnt++] = 11; - else if (curChar == 84) - jjstateSet[jjnewStateCnt++] = 7; - break; - case 5: - if (curChar == 101) - kind = 5; - break; - case 6: - if (curChar == 117) - { jjCheckNAdd(5); } - break; - case 7: - if (curChar == 114) - jjstateSet[jjnewStateCnt++] = 6; - break; - case 8: - if (curChar == 84) - jjstateSet[jjnewStateCnt++] = 7; - break; - case 9: - if (curChar == 115) - { jjCheckNAdd(5); } - break; - case 10: - if (curChar == 108) - jjstateSet[jjnewStateCnt++] = 9; - break; - case 11: - if (curChar == 97) - jjstateSet[jjnewStateCnt++] = 10; - break; - case 12: - if (curChar == 70) - jjstateSet[jjnewStateCnt++] = 11; - break; - default : break; - } - } while(i != startsAt); - } - else - { - int i2 = (curChar & 0xff) >> 6; - long l2 = 1L << (curChar & 077); - do - { - switch(jjstateSet[--i]) - { - default : break; - } - } while(i != startsAt); - } - if (kind != 0x7fffffff) - { - jjmatchedKind = kind; - jjmatchedPos = curPos; - kind = 0x7fffffff; - } - ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 13 - (jjnewStateCnt = startsAt))) - return curPos; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { return curPos; } - } -} - -/** Token literal values. */ -public static final String[] jjstrLiteralImages = { -"", null, null, null, null, null, "\12", "\75\75", "\76\75", "\76", "\74", -"\74\75", "\41\75", "\53", "\55", "\52", "\57", "\45", "\50", "\51", "\41", }; -static protected Token jjFillToken() -{ - final Token t; - final String curTokenImage; - final int beginLine; - final int endLine; - final int beginColumn; - final int endColumn; - String im = jjstrLiteralImages[jjmatchedKind]; - curTokenImage = (im == null) ? input_stream.GetImage() : im; - beginLine = input_stream.getBeginLine(); - beginColumn = input_stream.getBeginColumn(); - endLine = input_stream.getEndLine(); - endColumn = input_stream.getEndColumn(); - t = Token.newToken(jjmatchedKind, curTokenImage); - - t.beginLine = beginLine; - t.endLine = endLine; - t.beginColumn = beginColumn; - t.endColumn = endColumn; - - return t; -} -static final int[] jjnextStates = {0 -}; - -static int curLexState = 0; -static int defaultLexState = 0; -static int jjnewStateCnt; -static int jjround; -static int jjmatchedPos; -static int jjmatchedKind; - -/** Get the next Token. */ -public static Token getNextToken() -{ - Token matchedToken; - int curPos = 0; - - EOFLoop : - for (;;) - { - try - { - curChar = input_stream.BeginToken(); - } - catch(Exception e) - { - jjmatchedKind = 0; - jjmatchedPos = -1; - matchedToken = jjFillToken(); - return matchedToken; - } - - try { input_stream.backup(0); - while (curChar <= 32 && (0x100000200L & (1L << curChar)) != 0L) - curChar = input_stream.BeginToken(); - } - catch (java.io.IOException e1) { continue EOFLoop; } - jjmatchedKind = 0x7fffffff; - jjmatchedPos = 0; - curPos = jjMoveStringLiteralDfa0_0(); - if (jjmatchedKind != 0x7fffffff) - { - if (jjmatchedPos + 1 < curPos) - input_stream.backup(curPos - jjmatchedPos - 1); - if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) - { - matchedToken = jjFillToken(); - return matchedToken; - } - else - { - continue EOFLoop; - } - } - int error_line = input_stream.getEndLine(); - int error_column = input_stream.getEndColumn(); - String error_after = null; - boolean EOFSeen = false; - try { input_stream.readChar(); input_stream.backup(1); } - catch (java.io.IOException e1) { - EOFSeen = true; - error_after = curPos <= 1 ? "" : input_stream.GetImage(); - if (curChar == '\n' || curChar == '\r') { - error_line++; - error_column = 0; - } - else - error_column++; - } - if (!EOFSeen) { - input_stream.backup(1); - error_after = curPos <= 1 ? "" : input_stream.GetImage(); - } - throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR); - } -} - -static void SkipLexicalActions(Token matchedToken) -{ - switch(jjmatchedKind) - { - default : - break; - } -} -static void MoreLexicalActions() -{ - jjimageLen += (lengthOfMatch = jjmatchedPos + 1); - switch(jjmatchedKind) - { - default : - break; - } -} -static void TokenLexicalActions(Token matchedToken) -{ - switch(jjmatchedKind) - { - default : - break; - } -} -static private void jjCheckNAdd(int state) -{ - if (jjrounds[state] != jjround) - { - jjstateSet[jjnewStateCnt++] = state; - jjrounds[state] = jjround; - } -} -static private void jjAddStates(int start, int end) -{ - do { - jjstateSet[jjnewStateCnt++] = jjnextStates[start]; - } while (start++ != end); -} -static private void jjCheckNAddTwoStates(int state1, int state2) -{ - jjCheckNAdd(state1); - jjCheckNAdd(state2); -} - - /** Constructor. */ - public CompilateurTokenManager(SimpleCharStream stream){ - - if (input_stream != null) - throw new TokenMgrError("ERROR: Second call to constructor of static lexer. You must use ReInit() to initialize the static variables.", TokenMgrError.STATIC_LEXER_ERROR); - - input_stream = stream; - } - - /** Constructor. */ - public CompilateurTokenManager (SimpleCharStream stream, int lexState){ - ReInit(stream); - SwitchTo(lexState); - } - - /** Reinitialise parser. */ - - static public void ReInit(SimpleCharStream stream) - { - - - jjmatchedPos = - jjnewStateCnt = - 0; - curLexState = defaultLexState; - input_stream = stream; - ReInitRounds(); - } - - static private void ReInitRounds() - { - int i; - jjround = 0x80000001; - for (i = 13; i-- > 0;) - jjrounds[i] = 0x80000000; - } - - /** Reinitialise parser. */ - static public void ReInit(SimpleCharStream stream, int lexState) - - { - ReInit(stream); - SwitchTo(lexState); - } - - /** Switch to specified lex state. */ - public static void SwitchTo(int lexState) - { - if (lexState >= 1 || lexState < 0) - throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE); - else - curLexState = lexState; - } - - -/** Lexer state names. */ -public static final String[] lexStateNames = { - "DEFAULT", -}; - -/** Lex State array. */ -public static final int[] jjnewLexState = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -}; -static final long[] jjtoToken = { - 0x1ffff9L, -}; -static final long[] jjtoSkip = { - 0x6L, -}; -static final long[] jjtoSpecial = { - 0x0L, -}; -static final long[] jjtoMore = { - 0x0L, -}; - static protected SimpleCharStream input_stream; - - static private final int[] jjrounds = new int[13]; - static private final int[] jjstateSet = new int[2 * 13]; - private static final StringBuilder jjimage = new StringBuilder(); - private static StringBuilder image = jjimage; - private static int jjimageLen; - private static int lengthOfMatch; - static protected int curChar; -} diff --git a/ParseException.class b/ParseException.class deleted file mode 100644 index 29184c2cd6f645b83b49b2ef98ba500fa10b9476..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3271 zcma)8TU1<E8U8lR%$XTZ0y!{Ap`@MAT!tB#G^r&OQer}bok}j11WchOhnXE17|skc zXCl~|UL@AmYPD(;Vro-*p*5POkq{OxdGJBk^2Jvl_083_^u^_a(MA0BITIlTFSFL( z|G)SC_kaENf9AJK3yT2u;d&5dDA(Z8;e}6N{ZTVtkO#+;GH0i=mOwCVrR}ttNf)HR zu1MFh?1;45`uY-mUBl)Xb7#i126uMb`Ls3I*0_2r2tNWEf;uXo3sf)PSz*JsR~cy+ z2t`(FXzU5l#q~NWQ6-=!i}}2?Y{v}&t>ljqF?3X;Mqr~H&&i}MQ;tlx94ksIDGLJS z^jZmS)UgToFf?1mk{C4y8Cvxk@hIo(l;`*Ia-^|G!)Ad^%OSX7A1J0XDVYzV9(8I8 z>)3(@0iT)6Nh>ALyjE1J0xhX&Q!2J9725>rBOR-AdPmTY9ds)mkE@s(bwm;4`rwf+ z0b`Z+Hb0sLJYoL)*eS5?pq0!PEnDVgD%=pjF6`FukdDu&BzsHQ^;mM;Hi(lJ9eeNy zV;?m~WJlIYns#s69wJw;P0MC(xBp);wkbocI@++8&Wxm0c0|H}K)bTAPvDU?^sEkM zbyC_4CZXLxIa-vB4jqrFba>OMx(ef+IzF#Ls4!Ehld_OBbF!c$6FQzy-UJ5ZVA|?R zTT<<I={TfzE1cbqY^FGB8SvnUa`UJ_WDPeHi8bBwDz|)U($KDodt65kdIkJ;)&-D2 zO=OL$L7c!-8v1nf<7t7aPvedV%Sda`9&*5$P~s<boPx=N<dB))Z!^b{L}P~^NrAHd z0Y8ZIvVPl-K}9V;(u$t;V?@!sAESyk_>om~haY2#_6Jdbt)Zy=J|nPU*^vYRG$`|Y zbCLfLy&o;gu?ZbtRd)l0;y}S^76t-n@#AZ3IT<EBUXVF6Z`xUU@f<-B4B`d6sNw56 zCKWDLMn6%oB|WVel=jhlHYfA;1O*B*&o<Q~^9A;;<B7+p<O$;Z4n}*-Oi_A?W%UyR z;s4RfdYHV9Y>FAHRG>Iq937DPW9C4HJL|e_GdXg|%$3&uy-CL4bg*D|wwO=K&a{%N zzPp*mRpRLBfo#@h63pBoX%A&ng-Rd3AH)yvLk({ze4Q8Ax}4**b%t%K)MDMY*J&o1 zC<c9DB@9b~uF}U%E0vLjtzFsdNHN#8`U$Prx$EMwiJV+Rd}Vh$GBC{kdRMnEspv2> zneMbL*=?o>9l>7nBSnQDZxW><Oy(_zA;{h)Y(zuYw8IJjVbK&$I`2#gy`zNUWZvWB z5WQw0>^60NWm-j;KR;#!+wxr};Vji;Pu~&vkk9`?{;1^&)%6zzKOYIplKGB|St!VY zhN}YGR%Lpv1Zub@aNmCy<+F3MjV<gqe!|R)I-J8d*xp{^stn(R)1?&v)z{3S{A4+l zUnEi=Pb%;V=WlU!fE~v}S{IEqHP1ubgcgn6z`AJD4Qz-u-$3YN=kBYVH_{rg4MA+D z?j6(`K`j~`efO61Z6Otu@<wl>cKNDmkL>X@wZ{?HOX3aOS0}z`jFvww-$sLbX^wvz zT=}xi)WERClfOXyiJQ3ZaCwWTyu};x#ulfM40&Q9?{0EIhpHoA$XD8{Z*Edt$QR!| zhx@C-b9kV4(kEta|3Pg#LY`E73c+S$I|X{1uOmWgG^xd;mx7m!c&j%$iw9eM<t<uB z3wfq76w;=k*LoN5Fwp9)_08h57h%+To62`D;8C?VgAOj86K;LZ5u^Nmmr?r%=5eqj ztTeeN+^3;QjfT%FqrXO7tz&%_kE``8zOaD9t`fSsfF~6nTf7M040gp9J(ram&dC?m z$qXt>%Wn5l^Bj)-+v+tIp$w|Zub_eRNv8P}abhBb0o;!yYcBB+PNS2w3q$BbnkOU3 zQl^MeOu)i(T)m7O&SMO3A&)C;>sNWYh%@*NzJlLl9Dk(bpD6biJcGaCS)t>sxCbwY zFeb%zoD&b@C9xkbi^KHh+w>%g$|bDVP%p%$fAXQ<LPO{lj3wwAPH5OAYBt`&zRlG& z6*_(92iS!Qk?e8sx>SNnS9$y9=p4Q@jZdPR=kVn#)IG(aUXdCJjsOR<L&yP7bLbp{ z9P2p7I8<hy;n=}(j-#LBwU{xWATonjV@As5UW^&1U2Z&P47r>YGlpF*6*Dp}_f*WV zT<&Ph$hlmn<K2lztHN(1P+xWSUBv6Fs^*bjU;@$ViPd^)J&Z$3Ib;sw3(6<=av)ak z;JTcssfn?`%XJ+_9ld>nv0i||$WP%CV|x?Btkf7T!^SlAyo0lNkFmYaPVxa>!-sgC zRh+_4DSefvAMxa4{0!G|4YT+aZs2z`{RwX3&zQ$wsr&EvrBk;(SigiI>jv=;91oO! zx3K{pr*Nz%i+h_jDy>;JUiQ+#@8C{5dBEuoK!x$FadsZh{~VF!CZU=F*wf1Cr$X;{ w@jcRZR_}G5TyW-#&V0$4f9%Ycoq5`s-*x8qo%sW2{s|*h^%sosBSu>LFTc<4rvLx| diff --git a/ParseException.java b/ParseException.java deleted file mode 100644 index a0e007e..0000000 --- a/ParseException.java +++ /dev/null @@ -1,193 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 7.0 */ -/* JavaCCOptions:KEEP_LINE_COLUMN=true */ -/** - * This exception is thrown when parse errors are encountered. - * You can explicitly create objects of this exception type by - * calling the method generateParseException in the generated - * parser. - * - * You can modify this class to customize your error reporting - * mechanisms so long as you retain the public fields. - */ -public class ParseException extends Exception { - - /** - * The version identifier for this Serializable class. - * Increment only if the <i>serialized</i> form of the - * class changes. - */ - private static final long serialVersionUID = 1L; - - /** - * The end of line string for this machine. - */ - protected static String EOL = System.getProperty("line.separator", "\n"); - - /** - * This constructor is used by the method "generateParseException" - * in the generated parser. Calling this constructor generates - * a new object of this type with the fields "currentToken", - * "expectedTokenSequences", and "tokenImage" set. - */ - public ParseException(Token currentTokenVal, - int[][] expectedTokenSequencesVal, - String[] tokenImageVal - ) - { - super(initialise(currentTokenVal, expectedTokenSequencesVal, tokenImageVal)); - currentToken = currentTokenVal; - expectedTokenSequences = expectedTokenSequencesVal; - tokenImage = tokenImageVal; - } - - /** - * The following constructors are for use by you for whatever - * purpose you can think of. Constructing the exception in this - * manner makes the exception behave in the normal way - i.e., as - * documented in the class "Throwable". The fields "errorToken", - * "expectedTokenSequences", and "tokenImage" do not contain - * relevant information. The JavaCC generated code does not use - * these constructors. - */ - - public ParseException() { - super(); - } - - /** Constructor with message. */ - public ParseException(String message) { - super(message); - } - - - /** - * This is the last token that has been consumed successfully. If - * this object has been created due to a parse error, the token - * following this token will (therefore) be the first error token. - */ - public Token currentToken; - - /** - * Each entry in this array is an array of integers. Each array - * of integers represents a sequence of tokens (by their ordinal - * values) that is expected at this point of the parse. - */ - public int[][] expectedTokenSequences; - - /** - * This is a reference to the "tokenImage" array of the generated - * parser within which the parse error occurred. This array is - * defined in the generated ...Constants interface. - */ - public String[] tokenImage; - - /** - * It uses "currentToken" and "expectedTokenSequences" to generate a parse - * error message and returns it. If this object has been created - * due to a parse error, and you do not catch it (it gets thrown - * from the parser) the correct error message - * gets displayed. - */ - private static String initialise(Token currentToken, - int[][] expectedTokenSequences, - String[] tokenImage) { - - StringBuilder expected = new StringBuilder(); - int maxSize = 0; - for (int i = 0; i < expectedTokenSequences.length; i++) { - if (maxSize < expectedTokenSequences[i].length) { - maxSize = expectedTokenSequences[i].length; - } - for (int j = 0; j < expectedTokenSequences[i].length; j++) { - expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' '); - } - if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) { - expected.append("..."); - } - expected.append(EOL).append(" "); - } - String retval = "Encountered \""; - Token tok = currentToken.next; - for (int i = 0; i < maxSize; i++) { - if (i != 0) retval += " "; - if (tok.kind == 0) { - retval += tokenImage[0]; - break; - } - retval += " " + tokenImage[tok.kind]; - retval += " \""; - retval += add_escapes(tok.image); - retval += " \""; - tok = tok.next; - } - if (currentToken.next != null) { - retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn; - } - retval += "." + EOL; - - - if (expectedTokenSequences.length == 0) { - // Nothing to add here - } else { - if (expectedTokenSequences.length == 1) { - retval += "Was expecting:" + EOL + " "; - } else { - retval += "Was expecting one of:" + EOL + " "; - } - retval += expected.toString(); - } - - return retval; - } - - - /** - * Used to convert raw characters to their escaped version - * when these raw version cannot be used as part of an ASCII - * string literal. - */ - static String add_escapes(String str) { - StringBuilder retval = new StringBuilder(); - char ch; - for (int i = 0; i < str.length(); i++) { - switch (str.charAt(i)) - { - case '\b': - retval.append("\\b"); - continue; - case '\t': - retval.append("\\t"); - continue; - case '\n': - retval.append("\\n"); - continue; - case '\f': - retval.append("\\f"); - continue; - case '\r': - retval.append("\\r"); - continue; - case '\"': - retval.append("\\\""); - continue; - case '\'': - retval.append("\\\'"); - continue; - case '\\': - retval.append("\\\\"); - continue; - default: - if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { - String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); - } else { - retval.append(ch); - } - continue; - } - } - return retval.toString(); - } - -} -/* JavaCC - OriginalChecksum=de3ddfc6669ad4ae8d41fff7ccf6fbb7 (do not edit this line) */ diff --git a/SimpleCharStream.class b/SimpleCharStream.class deleted file mode 100644 index 254e09b6f6901caf5575cbd7de42b45338c2c622..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6926 zcma)BYj9N69six|CU>)3mL#$S77{i*^CAdpP=i<q0fImv2}p<{%kBjhHoM#14TA5s zSVgVUTB)d2u;}{02T4mPAii3Bbn0}RwsyuZ{o<F-w4Huvb;bw%{m<RaZj!}z$-U>? zbN{dNf1k^T-<&xQ;Cg&miXu1+I879zM4_xJ+!v2nt-At=u2jMb^eGsr!1k{2ZI*&+ z7igD>QUNu#_wPt@UDn2#Ffm@CgljvjghEkotE^8jQ6{kNRBVqGU1seJN8PBvWd<gi z@M01f?hfn?%#Q@3JLh-pPo^v~EDa<Qf&IZ)e7{0{?V21w$M)S;FxAptV5z-slkl5t zVv6t+IpVRTEKM~r4OO<dk#LmTDC*Vwm~O%^FG>j;j79qUq5?j{#7v>!=?m;zXYEUg zCfcJR1G5z_%ZbvxD-pXjusvcKn5!@$_o6M4h$Y;Zg*p@UXyDd&TB)^GG8x!O))Q;% z@`R^`!_l2BZp^_v6HS;;!54?4;nWfZZ~n$Jfc732m{=$hmQr!yh{)ik+*g{o3e9BK zwl5xthL+I|3eMUsHqO;1uEDhm<HFH+e=2L)GFz5#Y<{N|2w4eAvKZGHSYpyMzC#`8 zZ4JLBJ$gils;up8ZEvq@7w}~!TCrTAI2ef~xkE>7-6jJovdSWIdq>;8pcPMrW3+u6 zR>@A6i^!`@+<-M=tUz#2e_X_+8RgA76CGHu;1Ygf0ZmtXRHun9ZQ-2BHk#Ok8x_oW z!rH6tm0Uvs)E2R4kBKb;?-bk1!c8V_9tGXnDKBm@u}vV0!%=Ea#Mo{kD0_3Q2uC8K zQCYN1?7&Vs?#6g1kh0d0Y^(Mjk-t^s4`Y>q-6LGv_FNYt3U9gnet%nMXGiC?{w^yR zi-!EcKqTT%#r&yVmY)mBRH8qaiY5H99sYnnnF^%BLI3EuY!Wi^>xuRI`}&h9zZE8a z!rz~?{GC=iy{NX%Pa;Vxr3tU5yR^3YW7-h@uI{DX?XALeM<9~4vcy9D;*lDDrxmpl zWF3o&9I0L5q(2x5B$G{|gs2!XrZ6evrNchb(oV<FHvF!Mgn*RT!Wc*?OvyS_d(I7Q z*K;F@y+ZU>g~>Uhd2lU4Hi`WLbXzVlh=b*bwTz7}Tberr?M{Vxg=vpP8{Ws=f_aa^ z)WVp<aNn2x-YLpCAhUZ6{BVQ|*fH$Jy|`Z}9vlv%O%=?<51M!gKT@dd3+$mkMT3FV zjkG6cw0|^}RJc0B-%gcw<`^q>f%GE2{fLP};`9?z3C3E!&$?~@S`i7*r^jdcZ3;yC zEeGXN%qaAr?raHgw#Gt?@(Ds>U4P$pE5TP0u1K02hGG(EC$+8=nXL`PHHd-nhNN32 zs7yBCrrf$DbW3qyLL-T6D7lwgjAm-VV!oNu*&j`X`>ajjWSGpBMx!wa3hIU)n5Tmr zP7Ae5Y9b}`0%vW}&@gHH(SGOQgO(xtR)F<_{XUz9^Bufy6SG^+8#1|5(%wt?X)ouM z22Lo<%KHAsXtF;Zk0rRZwrDUGV!#cnM4>T9_}l$j;!MF;7~Fp8T4|-)`*h(c<+O_# zEWD2ij%l{HmFa4EOw{8IgmyE33~xHC34&=B71T)gXt$w-w<uJIYm9#7S{#gIikQ1A z)}IJkOrOGMObQc?Fh-WeVkzdlKzyy0+7$~WCzRj~H_qct18+%Kyq#5^cKvX4FWqIn z9Zq(ntO!WDWVi5mevD)QZKA7K6C+k~)|yz1rKUid$aA9+h~4|+RsrzdJorpok{@~* z60J<^UE!3~;=;S^I~1eIY>zUpwn`?ok_Ij)%+`*Pzqdjn8+c!#`rAR7Z0-G_hA|&z z_?ELB`Y~>V!cX{Agh%0$=8bcgG!c4agT}E`8YhmrThb$&BR#U*>XBtskF1`0WX;th z8w)+M0n{VgCq1&5>XCh=9+`kR&LyXxVhtsFj89b@6~|)VAk;}t6b|!Vq8Dcn^k;aS za{-;E*8t}L)QM4$GbuK^9~)AAMEqisnlk{S+=XrDiq~Xk?zO|Sb-p7wGywMiJPi)6 zatxhDIaeGFna2TCa;0HVfP8%4I0DY+XdD68I4D5Xgqt@4uG%qg1l+tq0jkWbZR;6C z<sfR(=o%|bVb+Bi4U_eRhDlaj>pY7&JyV>gP&<UiH_1~JGAO$>264G#5T29NS~V`J zBKE9BTKfs=8mNPt4eUfT@a=rezye%Jmsx=;u$sEQiQ0~05ewZlI6wzDj21kB>+l+u z;%zL$Z?PPou-p3-EAe-%!oP@hku6;j)+#4DR5`lTRCKEvY*e$^z8xXQNpOCH*9<&i z;7R^{iH>CkW_f5^c43r_UZ8qu*&@Q88$itfE<cLhymK>0aTOKM%^k-?2lrn?t#W~T zOk*V{Pr;L2PNUgz8dsz-U!!`C!?d-LMin8s7$Ti#;dW}MQk%>G7HRtkSMm;>LQ79e z(NS@jMW?XzEZTa8u#y_C@ln4uC+TvP&Jd*_uXd6kC@Im>o`yH6@i?BrQR>Im_;yU@ zp0?26Z{q1_E2gp&orwS%x$}hxQLj6wfn8Y3px%VtT;0QaAE_j85Gg!@en!eZ(%es~ zx8oS@z>ByOui!5H5_jVa?$H{qLTO`JN%>{PUtx~A$Q(e88fg2PvCjcd@!3h?+9=4+ zvEEiW&2GnNSrLUljkPWIHhj4ttRNO}AMf{*=0SMyU>+^qFO!CtZ>pvbyfA<bPU>mH z0J@K068*4y0GpjO+y<_0PJ^-Adjx*I==GJkkJ1<fNn=7jl<y^S1=jH@<t5o?0k3*q zvL@F|qV=XR*T(h>SK5SJ`KRoAJS1|Y!I)+E(rGq#=qToFLx-d!+eDoV1+a;7F_U_j z!78|)8Y+D*72819U%(w-O#>{a=j_6Bh~Rm|@B%y57qJ&F(-0?!{R%Vi0ChWvGz}w8 zUkamU(zux=CDS<Np(msCLmVYB(si~zE!x;Bf^QY4(iua$yg~I)OlGIbD^KLTsyT*| z(+FhVwD?XVq^)J|q@IBd{F+JfEO+t-bMSfY<ShpLyWGKV7|0iRq<f!%`+=6Q7>*jF zJkOw|c$!(+p|i4|a>~zT>#Ql~6m|~(m@1LqQC_lgjAJQPQ~+PJKL-EPg807}t_uH) z|6j@Ncp>P5+&&}pbA_NKtB;ZGZ-jon5Hx9zh5jd@dEB)Ffun8T>9njQ46&?FC+?>( zo^#rltCczbvt#Vv^uPbm6F+BC{z6;F0aZ<!JdI^2AE9Mf{jjut2)me^E?~UWfQmg* z09a5KO=Eyn=`iq0z)2nOI?ole%5iYBh}lDRj&~Erk>J;i-EZhS7cr4(e6n(28dLcU zRl=_v1{Nw8u2H4@Y~a>%Re%X*B8m+Z8CWcx55u2grZZyBrI3;}#??1Wt12(U5c-6n zUH|121yu$&>x3Y^kcTAxMkJ@RFw!I<RT7+M&kWMDBqj>!9=Ul&#|4;PwiE92&!Fbp zbs@E*ml;Uc5YD$U6*3*>*=Hfk6jT+QG>1z~hey@$v@?@=b{6KT*|<{8L5r$ItEyx9 zt7rLZ(0X#Bs7kt^#3eOz3h~jJS-?#$)JT`oOaY`tM7o+tJO@)F(o)?_y-061qrUMy zc+Mi((=deoG)z5h9KyaTuhUzcF^!!)Y|~ta8nr~rKLthWOQe*Plo)u?z`bJXBF+~N zXN;FM(|dRqrt`>D%u!ySWjKvo3YdR6%2b<1eI+Ar9i<i2@%0Uj#L*6L`)J+V08_0Q z#rxF^@3BsI*J$)kYN<<ey)DDFmR#j1Y?5on>&7tMjB%=G6w_Ptn2vPXF-*6T=`953 z2ZRjM;QwcujG6OIW6?A_v}vZ(Gz>p&936(k=COlvguMJ>k&(BsfeJWOga+!<QeRS4 zr|`Ye3QkZ}$x*B?rK(f-!D#e-RMmdX^wM5Yfa_iKin~W~y_8oJ;Cg^u?_~mijkVr( z<0LyK`K{K;+H(xPv$(fMmt3}x%-^1nbK4N^dp&<yA2PU@S!2t=a?a;7cmQ~v)NDg~ z#NX6Gl&S~dR}X1pGSB-d!0V8HUE=6Lx}~_)dY?YukdW^fCTRg!Nu1jn9IX50X)Mr7 zhSa-|GZf;oJ<FbTGLKpmIql@c@JVt|k20k_#&7$FDasLkLw*wL)YDodepvbne)jA0 zDA)iyA6u{m9OXA&v83?w@zTY_&h5I8spF*j924d9v`d=kgKUR1I=AfPGw=mfcpatU za10aeNr=^Qn{(TeG`uX3qGPUeL6(;|nw^g3Vn=g{quFpYyS&b-XR(e=-86#6dzy=z zI6qLNGLI!qN2QVXd5e7=Ug=)EB~7GL?JaH!HIp<aQ@yTj9bTi^b-=087Y8)KP8;O_ zlyr$%7$+gfjYp7z+?t+2Sq?9K@#75N^u_n}tcexbX3b7i9Nu<=Ej$rHy-H1;)XJ<@ zL%3X>VVOOP>(v_wsyF$W`7PX`-sZQ)ckqCE7l+gZ99Hk+sQQ3kqke}$^?Q886Y;0& z5BN;|5&uws!sqJG+J1f*U!hukg>sf^54|n>1HQ!iDVLWrtN#k8GG@&?e?L5`%Tu2a zawvQL9&xCDI2XUVAyj`M=;>i!xjEx2v!$4_o87=heX}(Eyt;YS@Y>2X#Ve209PJ@x z^puGt=Vj@w<o`2G=2I2#)jYpWhoAo(Y;#4MXV~h>Cl7^lyxw7x3pO%}r_}e@<WBi7 DJr<<5 diff --git a/SimpleCharStream.java b/SimpleCharStream.java deleted file mode 100644 index 31be0cc..0000000 --- a/SimpleCharStream.java +++ /dev/null @@ -1,474 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 7.0 */ -/* JavaCCOptions:STATIC=true,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ -/** - * An implementation of interface CharStream, where the stream is assumed to - * contain only ASCII characters (without unicode processing). - */ - -public class SimpleCharStream -{ -/** Whether parser is static. */ - public static final boolean staticFlag = true; - static int bufsize; - static int available; - static int tokenBegin; -/** Position in buffer. */ - static public int bufpos = -1; - static protected int bufline[]; - static protected int bufcolumn[]; - - static protected int column = 0; - static protected int line = 1; - - static protected boolean prevCharIsCR = false; - static protected boolean prevCharIsLF = false; - - static protected java.io.Reader inputStream; - - static protected char[] buffer; - static protected int maxNextCharInd = 0; - static protected int inBuf = 0; - static protected int tabSize = 1; - static protected boolean trackLineColumn = true; - - static public void setTabSize(int i) { tabSize = i; } - static public int getTabSize() { return tabSize; } - - - - static protected void ExpandBuff(boolean wrapAround) - { - char[] newbuffer = new char[bufsize + 2048]; - int newbufline[] = new int[bufsize + 2048]; - int newbufcolumn[] = new int[bufsize + 2048]; - - try - { - if (wrapAround) - { - System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin); - System.arraycopy(buffer, 0, newbuffer, bufsize - tokenBegin, bufpos); - buffer = newbuffer; - - System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin); - System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos); - bufline = newbufline; - - System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin); - System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos); - bufcolumn = newbufcolumn; - - maxNextCharInd = (bufpos += (bufsize - tokenBegin)); - } - else - { - System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin); - buffer = newbuffer; - - System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin); - bufline = newbufline; - - System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin); - bufcolumn = newbufcolumn; - - maxNextCharInd = (bufpos -= tokenBegin); - } - } - catch (Throwable t) - { - throw new Error(t.getMessage()); - } - - - bufsize += 2048; - available = bufsize; - tokenBegin = 0; - } - - static protected void FillBuff() throws java.io.IOException - { - if (maxNextCharInd == available) - { - if (available == bufsize) - { - if (tokenBegin > 2048) - { - bufpos = maxNextCharInd = 0; - available = tokenBegin; - } - else if (tokenBegin < 0) - bufpos = maxNextCharInd = 0; - else - ExpandBuff(false); - } - else if (available > tokenBegin) - available = bufsize; - else if ((tokenBegin - available) < 2048) - ExpandBuff(true); - else - available = tokenBegin; - } - - int i; - try { - if ((i = inputStream.read(buffer, maxNextCharInd, available - maxNextCharInd)) == -1) - { - inputStream.close(); - throw new java.io.IOException(); - } - else - maxNextCharInd += i; - return; - } - catch(java.io.IOException e) { - --bufpos; - backup(0); - if (tokenBegin == -1) - tokenBegin = bufpos; - throw e; - } - } - -/** Start. */ - static public char BeginToken() throws java.io.IOException - { - tokenBegin = -1; - char c = readChar(); - tokenBegin = bufpos; - - return c; - } - - static protected void UpdateLineColumn(char c) - { - column++; - - if (prevCharIsLF) - { - prevCharIsLF = false; - line += (column = 1); - } - else if (prevCharIsCR) - { - prevCharIsCR = false; - if (c == '\n') - { - prevCharIsLF = true; - } - else - line += (column = 1); - } - - switch (c) - { - case '\r' : - prevCharIsCR = true; - break; - case '\n' : - prevCharIsLF = true; - break; - case '\t' : - column--; - column += (tabSize - (column % tabSize)); - break; - default : - break; - } - - bufline[bufpos] = line; - bufcolumn[bufpos] = column; - } - -/** Read a character. */ - static public char readChar() throws java.io.IOException - { - if (inBuf > 0) - { - --inBuf; - - if (++bufpos == bufsize) - bufpos = 0; - - return buffer[bufpos]; - } - - if (++bufpos >= maxNextCharInd) - FillBuff(); - - char c = buffer[bufpos]; - - UpdateLineColumn(c); - return c; - } - - /** - * @deprecated - * @see #getEndColumn - */ - @Deprecated - static public int getColumn() { - return bufcolumn[bufpos]; - } - - /** - * @deprecated - * @see #getEndLine - */ - @Deprecated - static public int getLine() { - return bufline[bufpos]; - } - - /** Get token end column number. */ - static public int getEndColumn() { - return bufcolumn[bufpos]; - } - - /** Get token end line number. */ - static public int getEndLine() { - return bufline[bufpos]; - } - - /** Get token beginning column number. */ - static public int getBeginColumn() { - return bufcolumn[tokenBegin]; - } - - /** Get token beginning line number. */ - static public int getBeginLine() { - return bufline[tokenBegin]; - } - -/** Backup a number of characters. */ - static public void backup(int amount) { - - inBuf += amount; - if ((bufpos -= amount) < 0) - bufpos += bufsize; - } - - /** Constructor. */ - public SimpleCharStream(java.io.Reader dstream, int startline, - int startcolumn, int buffersize) - { - if (inputStream != null) - throw new Error("\n ERROR: Second call to the constructor of a static SimpleCharStream.\n" + - " You must either use ReInit() or set the JavaCC option STATIC to false\n" + - " during the generation of this class."); - inputStream = dstream; - line = startline; - column = startcolumn - 1; - - available = bufsize = buffersize; - buffer = new char[buffersize]; - bufline = new int[buffersize]; - bufcolumn = new int[buffersize]; - } - - /** Constructor. */ - public SimpleCharStream(java.io.Reader dstream, int startline, - int startcolumn) - { - this(dstream, startline, startcolumn, 4096); - } - - /** Constructor. */ - public SimpleCharStream(java.io.Reader dstream) - { - this(dstream, 1, 1, 4096); - } - - /** Reinitialise. */ - public void ReInit(java.io.Reader dstream, int startline, - int startcolumn, int buffersize) - { - inputStream = dstream; - line = startline; - column = startcolumn - 1; - - if (buffer == null || buffersize != buffer.length) - { - available = bufsize = buffersize; - buffer = new char[buffersize]; - bufline = new int[buffersize]; - bufcolumn = new int[buffersize]; - } - prevCharIsLF = prevCharIsCR = false; - tokenBegin = inBuf = maxNextCharInd = 0; - bufpos = -1; - } - - /** Reinitialise. */ - public void ReInit(java.io.Reader dstream, int startline, - int startcolumn) - { - ReInit(dstream, startline, startcolumn, 4096); - } - - /** Reinitialise. */ - public void ReInit(java.io.Reader dstream) - { - ReInit(dstream, 1, 1, 4096); - } - /** Constructor. */ - public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline, - int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException - { - this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize); - } - - /** Constructor. */ - public SimpleCharStream(java.io.InputStream dstream, int startline, - int startcolumn, int buffersize) - { - this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize); - } - - /** Constructor. */ - public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline, - int startcolumn) throws java.io.UnsupportedEncodingException - { - this(dstream, encoding, startline, startcolumn, 4096); - } - - /** Constructor. */ - public SimpleCharStream(java.io.InputStream dstream, int startline, - int startcolumn) - { - this(dstream, startline, startcolumn, 4096); - } - - /** Constructor. */ - public SimpleCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException - { - this(dstream, encoding, 1, 1, 4096); - } - - /** Constructor. */ - public SimpleCharStream(java.io.InputStream dstream) - { - this(dstream, 1, 1, 4096); - } - - /** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, String encoding, int startline, - int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException - { - ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize); - } - - /** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, int startline, - int startcolumn, int buffersize) - { - ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize); - } - - /** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException - { - ReInit(dstream, encoding, 1, 1, 4096); - } - - /** Reinitialise. */ - public void ReInit(java.io.InputStream dstream) - { - ReInit(dstream, 1, 1, 4096); - } - /** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, String encoding, int startline, - int startcolumn) throws java.io.UnsupportedEncodingException - { - ReInit(dstream, encoding, startline, startcolumn, 4096); - } - /** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, int startline, - int startcolumn) - { - ReInit(dstream, startline, startcolumn, 4096); - } - /** Get token literal value. */ - static public String GetImage() - { - if (bufpos >= tokenBegin) - return new String(buffer, tokenBegin, bufpos - tokenBegin + 1); - else - return new String(buffer, tokenBegin, bufsize - tokenBegin) + - new String(buffer, 0, bufpos + 1); - } - - /** Get the suffix. */ - static public char[] GetSuffix(int len) - { - char[] ret = new char[len]; - - if ((bufpos + 1) >= len) - System.arraycopy(buffer, bufpos - len + 1, ret, 0, len); - else - { - System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0, - len - bufpos - 1); - System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1); - } - - return ret; - } - - /** Reset buffer when finished. */ - static public void Done() - { - buffer = null; - bufline = null; - bufcolumn = null; - } - - /** - * Method to adjust line and column numbers for the start of a token. - */ - static public void adjustBeginLineColumn(int newLine, int newCol) - { - int start = tokenBegin; - int len; - - if (bufpos >= tokenBegin) - { - len = bufpos - tokenBegin + inBuf + 1; - } - else - { - len = bufsize - tokenBegin + bufpos + 1 + inBuf; - } - - int i = 0, j = 0, k = 0; - int nextColDiff = 0, columnDiff = 0; - - while (i < len && bufline[j = start % bufsize] == bufline[k = ++start % bufsize]) - { - bufline[j] = newLine; - nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j]; - bufcolumn[j] = newCol + columnDiff; - columnDiff = nextColDiff; - i++; - } - - if (i < len) - { - bufline[j] = newLine++; - bufcolumn[j] = newCol + columnDiff; - - while (i++ < len) - { - if (bufline[j = start % bufsize] != bufline[++start % bufsize]) - bufline[j] = newLine++; - else - bufline[j] = newLine; - } - } - - line = bufline[j]; - column = bufcolumn[j]; - } - static boolean getTrackLineColumn() { return trackLineColumn; } - static void setTrackLineColumn(boolean tlc) { trackLineColumn = tlc; } -} -/* JavaCC - OriginalChecksum=d21c3936098cd2248ef43da8b436fd21 (do not edit this line) */ diff --git a/Token.class b/Token.class deleted file mode 100644 index c95e81ca1441e72eed0f164afce31bfd64ea7a00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 985 zcmZuvTW=CU7(K&nxoicoqC&mYdI4IC#z%}kV47giK7b_N9u}C8Eil`_QX3!qL%wKY zQ=^GLz#nBiGmK);-Q@dbzd7go&YYbeKfitl@Cf(Ph#=}9<|2-SK<>ah@@ivG4Qu<o z1KAG+5)XXkhYtm!<w`e=BvKC28lDk|cY={r0)=w3wPd!#sjr6hN;gIHnu{~Y3dBaf z8VHD{E}nIf$2s!-i8qu2`G47Z(s>sJTo6bq`PNR_`0u2a*{wUcB(QFT_(82Lr@lA# z-+8?;N91Pavn!`FKTyw`kE!K}z*-|vv(Qsv*Bj4eoTlhU2&8&)=&P2m$jz8_BN)#o zJgg(tU{OzT^}8BV@|bQpR*HZ-JCuD2u)>o=xtKwP<;q{@UHDw5Lycg-VOib#*?iKI z)6PPAtlX@0=|UJRoL%i;{pMlXq1PWh^$smDP2wLt>2@%m_T`?h-AEf%yV@#j(&-2U zE+T~@-xAjwG$De^T=C~=LvYpRYc_A%eBEaLPlMaS4U=!0?2vg2w;9W<7MTTeM0_-u z3S+`l_855q88uGN)wp=|6ynngv}K@G3*ADLLII~*5~pyMV12QHHhXpqA!7;mS&woj zt9w^VCvdAfC&(>{dBnK=lJOM{c})Y}kh+Z>+h8f~GjglvkfiX+T4<e3w2DIU10#^p y;Tw`Kirdtxxe;g&7Fv(s;uv@M9ffdBqg~tR3W3^?L{WUf`s&d4+^d;pcYgtHIivCb diff --git a/Token.java b/Token.java deleted file mode 100644 index a9ae0aa..0000000 --- a/Token.java +++ /dev/null @@ -1,130 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. Token.java Version 7.0 */ -/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COLUMN=true,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ -/** - * Describes the input token stream. - */ - -public class Token implements java.io.Serializable { - - /** - * The version identifier for this Serializable class. - * Increment only if the <i>serialized</i> form of the - * class changes. - */ - private static final long serialVersionUID = 1L; - - /** - * An integer that describes the kind of this token. This numbering - * system is determined by JavaCCParser, and a table of these numbers is - * stored in the file ...Constants.java. - */ - public int kind; - - /** The line number of the first character of this Token. */ - public int beginLine; - /** The column number of the first character of this Token. */ - public int beginColumn; - /** The line number of the last character of this Token. */ - public int endLine; - /** The column number of the last character of this Token. */ - public int endColumn; - - /** - * The string image of the token. - */ - public String image; - - /** - * A reference to the next regular (non-special) token from the input - * stream. If this is the last token from the input stream, or if the - * token manager has not read tokens beyond this one, this field is - * set to null. This is true only if this token is also a regular - * token. Otherwise, see below for a description of the contents of - * this field. - */ - public Token next; - - /** - * This field is used to access special tokens that occur prior to this - * token, but after the immediately preceding regular (non-special) token. - * If there are no such special tokens, this field is set to null. - * When there are more than one such special token, this field refers - * to the last of these special tokens, which in turn refers to the next - * previous special token through its specialToken field, and so on - * until the first special token (whose specialToken field is null). - * The next fields of special tokens refer to other special tokens that - * immediately follow it (without an intervening regular token). If there - * is no such token, this field is null. - */ - public Token specialToken; - - /** - * An optional attribute value of the Token. - * Tokens which are not used as syntactic sugar will often contain - * meaningful values that will be used later on by the compiler or - * interpreter. This attribute value is often different from the image. - * Any subclass of Token that actually wants to return a non-null value can - * override this method as appropriate. - */ - public Object getValue() { - return null; - } - - /** - * No-argument constructor - */ - public Token() {} - - /** - * Constructs a new token for the specified Image. - */ - public Token(int kind) - { - this(kind, null); - } - - /** - * Constructs a new token for the specified Image and Kind. - */ - public Token(int kind, String image) - { - this.kind = kind; - this.image = image; - } - - /** - * Returns the image. - */ - @Override - public String toString() - { - return image; - } - - /** - * Returns a new Token object, by default. However, if you want, you - * can create and return subclass objects based on the value of ofKind. - * Simply add the cases to the switch for all those special cases. - * For example, if you have a subclass of Token called IDToken that - * you want to create if ofKind is ID, simply add something like : - * - * case MyParserConstants.ID : return new IDToken(ofKind, image); - * - * to the following switch statement. Then you can cast matchedToken - * variable to the appropriate type and use sit in your lexical actions. - */ - public static Token newToken(int ofKind, String image) - { - switch(ofKind) - { - default : return new Token(ofKind, image); - } - } - - public static Token newToken(int ofKind) - { - return newToken(ofKind, null); - } - -} -/* JavaCC - OriginalChecksum=093f73b266edc0ed6a424fcd3b5446d1 (do not edit this line) */ diff --git a/TokenMgrError.class b/TokenMgrError.class deleted file mode 100644 index a009d022fb150c24e8cc1918dd5d7fc8c6423cf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2854 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 QU+2TJN(CSPlv&#H9}y~Q761SM diff --git a/TokenMgrError.java b/TokenMgrError.java deleted file mode 100644 index 35e7f90..0000000 --- a/TokenMgrError.java +++ /dev/null @@ -1,146 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 7.0 */ -/* JavaCCOptions: */ -/** Token Manager Error. */ -@SuppressWarnings("all") -public class TokenMgrError extends Error -{ - - /** - * The version identifier for this Serializable class. - * Increment only if the <i>serialized</i> form of the - * class changes. - */ - private static final long serialVersionUID = 1L; - - /* - * Ordinals for various reasons why an Error of this type can be thrown. - */ - - /** - * Lexical error occurred. - */ - public static final int LEXICAL_ERROR = 0; - - /** - * An attempt was made to create a second instance of a static token manager. - */ - public static final int STATIC_LEXER_ERROR = 1; - - /** - * Tried to change to an invalid lexical state. - */ - public static final int INVALID_LEXICAL_STATE = 2; - - /** - * Detected (and bailed out of) an infinite loop in the token manager. - */ - public static final int LOOP_DETECTED = 3; - - /** - * Indicates the reason why the exception is thrown. It will have - * one of the above 4 values. - */ - int errorCode; - - /** - * Replaces unprintable characters by their escaped (or unicode escaped) - * equivalents in the given string - */ - protected static final String addEscapes(String str) { - StringBuilder retval = new StringBuilder(); - char ch; - for (int i = 0; i < str.length(); i++) { - switch (str.charAt(i)) - { - case '\b': - retval.append("\\b"); - continue; - case '\t': - retval.append("\\t"); - continue; - case '\n': - retval.append("\\n"); - continue; - case '\f': - retval.append("\\f"); - continue; - case '\r': - retval.append("\\r"); - continue; - case '\"': - retval.append("\\\""); - continue; - case '\'': - retval.append("\\\'"); - continue; - case '\\': - retval.append("\\\\"); - continue; - default: - if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { - String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); - } else { - retval.append(ch); - } - continue; - } - } - return retval.toString(); - } - - /** - * Returns a detailed message for the Error when it is thrown by the - * token manager to indicate a lexical error. - * Parameters : - * EOFSeen : indicates if EOF caused the lexical error - * lexState : lexical state in which this error occurred - * errorLine : line number when the error occurred - * errorColumn : column number when the error occurred - * errorAfter : prefix that was seen before this error occurred - * curchar : the offending character - * Note: You can customize the lexical error message by modifying this method. - */ - protected static String LexicalErr(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, int curChar) { - return("Lexical error at line " + // - errorLine + ", column " + // - errorColumn + ". Encountered: " + // - (EOFSeen ? "<EOF>" : ("'" + addEscapes(String.valueOf((char) curChar)) + "' (" + curChar + "),")) + // - (errorAfter == null || errorAfter.length() == 0 ? "" : " after prefix \"" + addEscapes(errorAfter) + "\"")) + // - (lexState == 0 ? "" : " (in lexical state " + lexState + ")"); - } - - /** - * You can also modify the body of this method to customize your error messages. - * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not - * of end-users concern, so you can return something like : - * - * "Internal Error : Please file a bug report .... " - * - * from this method for such cases in the release version of your parser. - */ - @Override - public String getMessage() { - return super.getMessage(); - } - - /* - * Constructors of various flavors follow. - */ - - /** No arg constructor. */ - public TokenMgrError() { - } - - /** Constructor with message and reason. */ - public TokenMgrError(String message, int reason) { - super(message); - errorCode = reason; - } - - /** Full Constructor. */ - public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, int curChar, int reason) { - this(LexicalErr(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason); - } -} -/* JavaCC - OriginalChecksum=e3db2317eb43ef65a59e1b700b6bc0df (do not edit this line) */ -- GitLab From 52c53b64e6fb56f0f498aa81fd5783dadb3dc470 Mon Sep 17 00:00:00 2001 From: boufala <lamia.boufala@eud.univ-paris13.fr> Date: Thu, 30 May 2024 16:03:22 +0200 Subject: [PATCH 3/4] done with fragement 2 --- AST/AST.java | 1 + AST/Assignment.java | 24 +++++ AST/Bool.java | 5 + AST/Div.java | 19 ++++ AST/Egal.java | 17 ++++ AST/Et.java | 13 +++ AST/ExpressionA.java | 3 +- AST/ExpressionA_Binaire.java | 2 + AST/FloatT.java | 5 + AST/GrEgNb.java | 19 ++++ AST/GrStNb.java | 19 ++++ AST/Ident.java | 6 +- AST/LoEqNb.java | 18 ++++ AST/LoStNb.java | 20 ++++ AST/Modulo.java | 19 ++++ AST/Moins.java | 19 ++++ AST/Mult.java | 19 ++++ AST/Neg.java | 12 +++ AST/Not.java | 10 ++ AST/NotEql.java | 24 +++++ AST/Num.java | 5 + AST/Plus.java | 6 ++ AST/SymbolTable.java | 27 +++++ AST/VariableExpr.java | 20 ++++ Compilateur$JJCalls.class | Bin 0 -> 378 bytes Compilateur$LookaheadSuccess.class | Bin 0 -> 298 bytes Compilateur.jj | 156 ++++++++++++++--------------- test.js | 10 +- 28 files changed, 403 insertions(+), 95 deletions(-) create mode 100644 AST/Assignment.java create mode 100644 AST/SymbolTable.java create mode 100644 AST/VariableExpr.java create mode 100644 Compilateur$JJCalls.class create mode 100644 Compilateur$LookaheadSuccess.class diff --git a/AST/AST.java b/AST/AST.java index f304717..badfadc 100644 --- a/AST/AST.java +++ b/AST/AST.java @@ -1,3 +1,4 @@ + package AST; import java.util.Deque; import java.util.ArrayDeque; diff --git a/AST/Assignment.java b/AST/Assignment.java new file mode 100644 index 0000000..85482ba --- /dev/null +++ b/AST/Assignment.java @@ -0,0 +1,24 @@ +package AST; + +// Classe pour représenter une affectation de variable +public class Assignment extends ExpressionA { + private String varName; + private ExpressionA expression; + + public Assignment(String varName, ExpressionA expr) { + this.varName = varName; + this.expression = expr; + } + + @Override + public String toAssembly() { + return expression.toAssembly() + "SetVar " + varName + "\n"; + } + + + public Object evaluate() { + Object value = expression.evaluate(); + SymbolTable.assignVariable(varName, value); + return value; + } +} diff --git a/AST/Bool.java b/AST/Bool.java index 2765264..2272a49 100644 --- a/AST/Bool.java +++ b/AST/Bool.java @@ -13,4 +13,9 @@ public class Bool extends ExpressionA { public String toAssembly() { return "CsteBo " + num+"\n"; } + + @Override + public Object evaluate() { + return num; + } } diff --git a/AST/Div.java b/AST/Div.java index 5aa8296..e9306b5 100644 --- a/AST/Div.java +++ b/AST/Div.java @@ -12,4 +12,23 @@ public class Div extends ExpressionA_Binaire { public String toAssembly() { return gauche.toAssembly() + droite.toAssembly() + "DivNb\n"; } + + @Override + public Object evaluate() { + Object leftValue = gauche.evaluate(); + Object rightValue = droite.evaluate(); + + if (leftValue instanceof Integer && rightValue instanceof Integer) { + return (Integer) leftValue / (Integer) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Float) { + return (Float) leftValue / (Float) rightValue; + } else if (leftValue instanceof Integer && rightValue instanceof Float) { + return (Integer) leftValue / (Float) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Integer) { + return (Float) leftValue / (Integer) rightValue; + } else { + throw new RuntimeException("Unsupported types for Div operation: " + + leftValue.getClass().getName() + " and " + rightValue.getClass().getName()); + } + } } diff --git a/AST/Egal.java b/AST/Egal.java index 4a61e07..2d6f6d8 100644 --- a/AST/Egal.java +++ b/AST/Egal.java @@ -12,4 +12,21 @@ public class Egal extends ExpressionA_Binaire { public String toAssembly() { return gauche.toAssembly() + droite.toAssembly() + "Equals\n"; } + + @Override + public Object evaluate() { + Object leftValue = gauche.evaluate(); + Object rightValue = droite.evaluate(); + + if (leftValue == null || rightValue == null) { + return leftValue == rightValue; + } + + if (!leftValue.getClass().equals(rightValue.getClass())) { + throw new RuntimeException("Cannot compare values of different types: " + + leftValue.getClass().getName() + " and " + rightValue.getClass().getName()); + } + + return leftValue.equals(rightValue); + } } diff --git a/AST/Et.java b/AST/Et.java index f0ff6e2..81d3b60 100644 --- a/AST/Et.java +++ b/AST/Et.java @@ -12,4 +12,17 @@ public class Et extends ExpressionA_Binaire { public String toAssembly() { return gauche.toAssembly() +"ConJmp "+Tools.countNewLines(droite.toAssembly())+"\n"+ droite.toAssembly() + "Jump 2\n"+"CstBo False\n"; } + + @Override + public Object evaluate() { + Object leftValue = gauche.evaluate(); + Object rightValue = droite.evaluate(); + + if (leftValue instanceof Boolean && rightValue instanceof Boolean) { + return (Boolean) leftValue && (Boolean) rightValue; + } else { + throw new RuntimeException("Unsupported types for Et operation: " + + leftValue.getClass().getName() + " and " + rightValue.getClass().getName()); + } + } } diff --git a/AST/ExpressionA.java b/AST/ExpressionA.java index f453d80..10f91a2 100644 --- a/AST/ExpressionA.java +++ b/AST/ExpressionA.java @@ -1,6 +1,5 @@ package AST; public abstract class ExpressionA extends Commande { - // un jour il y aura d'autres choses ici - //public abstract String toAssembly(); + public abstract Object evaluate(); } diff --git a/AST/ExpressionA_Binaire.java b/AST/ExpressionA_Binaire.java index 2fb339e..c270213 100644 --- a/AST/ExpressionA_Binaire.java +++ b/AST/ExpressionA_Binaire.java @@ -16,4 +16,6 @@ abstract class ExpressionA_Binaire extends ExpressionA { public String toString() { return String.format("%1$s(%2$s,%3$s)", symbole(), gauche.toString(), droite.toString()); } + + public abstract Object evaluate(); } diff --git a/AST/FloatT.java b/AST/FloatT.java index ae7215b..c3eb296 100644 --- a/AST/FloatT.java +++ b/AST/FloatT.java @@ -19,4 +19,9 @@ public class FloatT extends ExpressionA { public String toAssembly() { return "CsteNb " + this.arg + "\n"; } + + @Override + public Object evaluate() { + return this.arg; + } } diff --git a/AST/GrEgNb.java b/AST/GrEgNb.java index 03c2aab..955f1ea 100644 --- a/AST/GrEgNb.java +++ b/AST/GrEgNb.java @@ -12,4 +12,23 @@ public class GrEgNb extends ExpressionA_Binaire { public String toAssembly() { return gauche.toAssembly() + droite.toAssembly() + "GrEqNb\n"; } + + @Override + public Object evaluate() { + Object leftValue = gauche.evaluate(); + Object rightValue = droite.evaluate(); + + if (leftValue instanceof Integer && rightValue instanceof Integer) { + return (Integer) leftValue >= (Integer) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Float) { + return (Float) leftValue >= (Float) rightValue; + } else if (leftValue instanceof Integer && rightValue instanceof Float) { + return (Integer) leftValue >= (Float) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Integer) { + return (Float) leftValue >= (Integer) rightValue; + } else { + throw new RuntimeException("Unsupported types for GrEqNb operation: " + + leftValue.getClass().getName() + " and " + rightValue.getClass().getName()); + } + } } diff --git a/AST/GrStNb.java b/AST/GrStNb.java index 4db76e1..8f6458d 100644 --- a/AST/GrStNb.java +++ b/AST/GrStNb.java @@ -12,4 +12,23 @@ public class GrStNb extends ExpressionA_Binaire { public String toAssembly() { return gauche.toAssembly() + droite.toAssembly() + "GrStNb\n"; } + + @Override + public Object evaluate() { + Object leftValue = gauche.evaluate(); + Object rightValue = droite.evaluate(); + + if (leftValue instanceof Integer && rightValue instanceof Integer) { + return (Integer) leftValue > (Integer) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Float) { + return (Float) leftValue > (Float) rightValue; + } else if (leftValue instanceof Integer && rightValue instanceof Float) { + return (Integer) leftValue > (Float) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Integer) { + return (Float) leftValue > (Integer) rightValue; + } else { + throw new RuntimeException("Unsupported types for GrStNb operation: " + + leftValue.getClass().getName() + " and " + rightValue.getClass().getName()); + } + } } diff --git a/AST/Ident.java b/AST/Ident.java index 204efa2..264cf28 100644 --- a/AST/Ident.java +++ b/AST/Ident.java @@ -9,6 +9,10 @@ public class Ident extends ExpressionA{ } public String toAssembly() { - return "" ; + return "GetVar " + this.arg + "\n"; + } + @Override + public Object evaluate() { + return SymbolTable.getVariable(arg); } } \ No newline at end of file diff --git a/AST/LoEqNb.java b/AST/LoEqNb.java index fd6a521..2cb6794 100644 --- a/AST/LoEqNb.java +++ b/AST/LoEqNb.java @@ -12,4 +12,22 @@ public class LoEqNb extends ExpressionA_Binaire { public String toAssembly() { return gauche.toAssembly() + droite.toAssembly() + "LoEqNb\n"; } + @Override + public Object evaluate() { + Object leftValue = gauche.evaluate(); + Object rightValue = droite.evaluate(); + + if (leftValue instanceof Integer && rightValue instanceof Integer) { + return (Integer) leftValue <= (Integer) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Float) { + return (Float) leftValue <= (Float) rightValue; + } else if (leftValue instanceof Integer && rightValue instanceof Float) { + return (Integer) leftValue <= (Float) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Integer) { + return (Float) leftValue <= (Integer) rightValue; + } else { + throw new RuntimeException("Unsupported types for LoEqNb operation: " + + leftValue.getClass().getName() + " and " + rightValue.getClass().getName()); + } + } } diff --git a/AST/LoStNb.java b/AST/LoStNb.java index 953f962..c2bce2b 100644 --- a/AST/LoStNb.java +++ b/AST/LoStNb.java @@ -12,4 +12,24 @@ public class LoStNb extends ExpressionA_Binaire { public String toAssembly() { return gauche.toAssembly() + droite.toAssembly() + "LoStNb\n"; } + + + @Override + public Object evaluate() { + Object leftValue = gauche.evaluate(); + Object rightValue = droite.evaluate(); + + if (leftValue instanceof Integer && rightValue instanceof Integer) { + return (Integer) leftValue < (Integer) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Float) { + return (Float) leftValue < (Float) rightValue; + } else if (leftValue instanceof Integer && rightValue instanceof Float) { + return (Integer) leftValue < (Float) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Integer) { + return (Float) leftValue < (Integer) rightValue; + } else { + throw new RuntimeException("Unsupported types for LoStNb operation: " + + leftValue.getClass().getName() + " and " + rightValue.getClass().getName()); + } + } } diff --git a/AST/Modulo.java b/AST/Modulo.java index b02615f..506f5e8 100644 --- a/AST/Modulo.java +++ b/AST/Modulo.java @@ -8,4 +8,23 @@ public class Modulo extends ExpressionA_Binaire { public String toAssembly() { return gauche.toAssembly() + droite.toAssembly() + "ModuNb\n"; } + + @Override + public Object evaluate() { + Object leftValue = gauche.evaluate(); + Object rightValue = droite.evaluate(); + + if (leftValue instanceof Integer && rightValue instanceof Integer) { + return (Integer) leftValue % (Integer) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Float) { + return (Float) leftValue % (Float) rightValue; + } else if (leftValue instanceof Integer && rightValue instanceof Float) { + return (Integer) leftValue % (Float) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Integer) { + return (Float) leftValue % (Integer) rightValue; + } else { + throw new RuntimeException("Unsupported types for Modulo operation: " + + leftValue.getClass().getName() + " and " + rightValue.getClass().getName()); + } + } } diff --git a/AST/Moins.java b/AST/Moins.java index 76182ca..025f82d 100644 --- a/AST/Moins.java +++ b/AST/Moins.java @@ -8,4 +8,23 @@ public String symbole() {return "moins";}; public String toAssembly() { return gauche.toAssembly() + droite.toAssembly() + "SubiNb\n"; } + +@Override + public Object evaluate() { + Object leftValue = gauche.evaluate(); + Object rightValue = droite.evaluate(); + + if (leftValue instanceof Integer && rightValue instanceof Integer) { + return (Integer) leftValue - (Integer) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Float) { + return (Float) leftValue - (Float) rightValue; + } else if (leftValue instanceof Integer && rightValue instanceof Float) { + return (Integer) leftValue - (Float) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Integer) { + return (Float) leftValue - (Integer) rightValue; + } else { + throw new RuntimeException("Unsupported types for Moins operation: " + + leftValue.getClass().getName() + " and " + rightValue.getClass().getName()); + } + } } diff --git a/AST/Mult.java b/AST/Mult.java index 5c5c804..02a76f5 100644 --- a/AST/Mult.java +++ b/AST/Mult.java @@ -8,4 +8,23 @@ public String symbole() {return "fois";}; public String toAssembly() { return gauche.toAssembly() + droite.toAssembly() + "MultNb\n"; } + +@Override + public Object evaluate() { + Object leftValue = gauche.evaluate(); + Object rightValue = droite.evaluate(); + + if (leftValue instanceof Integer && rightValue instanceof Integer) { + return (Integer) leftValue * (Integer) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Float) { + return (Float) leftValue * (Float) rightValue; + } else if (leftValue instanceof Integer && rightValue instanceof Float) { + return (Integer) leftValue * (Float) rightValue; + } else if (leftValue instanceof Float && rightValue instanceof Integer) { + return (Float) leftValue * (Integer) rightValue; + } else { + throw new RuntimeException("Unsupported types for Mult operation: " + + leftValue.getClass().getName() + " and " + rightValue.getClass().getName()); + } + } } diff --git a/AST/Neg.java b/AST/Neg.java index d3bf1aa..dd2218d 100644 --- a/AST/Neg.java +++ b/AST/Neg.java @@ -14,4 +14,16 @@ public String toString() { public String toAssembly() { return (arg.toAssembly())+"NegaNb\n"; } + @Override + public Object evaluate() { + Object value = arg.evaluate(); + + if (value instanceof Integer) { + return -(Integer) value; + } else if (value instanceof Float) { + return -(Float) value; + } else { + throw new RuntimeException("Unsupported type for Neg operation: " + value.getClass().getName()); + } + } } diff --git a/AST/Not.java b/AST/Not.java index 8cdde2e..b7a085a 100644 --- a/AST/Not.java +++ b/AST/Not.java @@ -14,4 +14,14 @@ public class Not extends ExpressionA { public String toAssembly() { return (arg.toAssembly())+"Not\n"; } + + @Override + public Object evaluate() { + Object value = arg.evaluate(); + if (value instanceof Boolean) { + return !(Boolean) value; + } else { + throw new RuntimeException("Invalid type for Not operation: " + value.getClass().getName()); + } + } } diff --git a/AST/NotEql.java b/AST/NotEql.java index 33e5304..fd9c350 100644 --- a/AST/NotEql.java +++ b/AST/NotEql.java @@ -12,4 +12,28 @@ public class NotEql extends ExpressionA_Binaire { public String toAssembly() { return gauche.toAssembly() + droite.toAssembly() + "NotEql\n"; } + + @Override + public Object evaluate() { + Object leftValue = gauche.evaluate(); + Object rightValue = droite.evaluate(); + + if (leftValue == null || rightValue == null) { + return leftValue != rightValue; + } + + if (!leftValue.getClass().equals(rightValue.getClass())) { + throw new RuntimeException("Cannot compare values of different types: " + leftValue.getClass().getName() + " and " + rightValue.getClass().getName()); + } + + if (leftValue instanceof Integer) { + return !leftValue.equals(rightValue); + } else if (leftValue instanceof Boolean) { + return !leftValue.equals(rightValue); + } else if (leftValue instanceof Float) { + return !leftValue.equals(rightValue); + } else { + throw new RuntimeException("Unsupported types for NotEqual operation: " + leftValue.getClass().getName()); + } + } } diff --git a/AST/Num.java b/AST/Num.java index 461a153..1024fe0 100644 --- a/AST/Num.java +++ b/AST/Num.java @@ -13,4 +13,9 @@ public class Num extends ExpressionA { public String toAssembly() { return "CsteNb " + num+"\n"; } + + @Override + public Object evaluate() { + return num; + } } diff --git a/AST/Plus.java b/AST/Plus.java index 17d4083..41b6682 100644 --- a/AST/Plus.java +++ b/AST/Plus.java @@ -8,4 +8,10 @@ public String symbole() {return "plus";}; public String toAssembly() { return gauche.toAssembly() + droite.toAssembly() + "AddiNb\n"; } + + +@Override + public Object evaluate() { + return (Integer) gauche.evaluate() + (Integer) droite.evaluate(); + } } diff --git a/AST/SymbolTable.java b/AST/SymbolTable.java new file mode 100644 index 0000000..6cc23c3 --- /dev/null +++ b/AST/SymbolTable.java @@ -0,0 +1,27 @@ +package AST; + +import java.util.HashMap; +import java.util.Map; + +public class SymbolTable { + private static Map<String, Object> table = new HashMap<>(); + + // Assign a variable with a value + public static void assignVariable(String name, Object value) { + table.put(name, value); + } + + // Retrieve a variable's value + public static Object getVariable(String name) { + if (table.containsKey(name)) { + return table.get(name); + } + throw new RuntimeException("Variable " + name + " not defined."); + } + + // Check if a variable is already defined + public static boolean isVariableDefined(String name) { + return table.containsKey(name); + } +} + diff --git a/AST/VariableExpr.java b/AST/VariableExpr.java new file mode 100644 index 0000000..f7be3e5 --- /dev/null +++ b/AST/VariableExpr.java @@ -0,0 +1,20 @@ +package AST; + +// Classe pour représenter une variable +public class VariableExpr extends ExpressionA { + private String name; + + public VariableExpr(String name) { + this.name = name; + } + + @Override + public String toAssembly() { + return "GetVar " + name + "\n"; + } + + @Override + public Object evaluate() { + return SymbolTable.getVariable(name); + } +} diff --git a/Compilateur$JJCalls.class b/Compilateur$JJCalls.class new file mode 100644 index 0000000000000000000000000000000000000000..baf1265786d748a5b9397f27aaa1961250074ad0 GIT binary patch literal 378 zcmYjMu};G<6g;O*Qqn*RZJ`Wo48TCy7(gsRh*nV<sMwwIh+I;qvJ=E_F(EPV0elqV zC4khy?|k>}-Lt>GKRyARV?RIx10TCS_5>O!X#p`7aG#X1g@7N=@@LW)+><61Xli<` z<jEwGS!M;ovDRdwOj=7!2XT}yS1OYQmFDoz#naxU(yF-Pn4{wdj*0R|66nNA)3jVB zWM(qSSPAa)(#+{bRiwL?b-Iu*QlK>@TioWh@G%Uri7kQNn(Kcf&sP3XCUrWxOBOWe zN4M9EID^AK2b%S9xdI;i8e90~8wi;TKD>yr!?y#*N^wu#A>QhCm#bHa&NWAFGjp(m QUX6XU83XP*=ray~0PN#QzyJUM literal 0 HcmV?d00001 diff --git a/Compilateur$LookaheadSuccess.class b/Compilateur$LookaheadSuccess.class new file mode 100644 index 0000000000000000000000000000000000000000..bb6b73a53335b13b437d3f2b5bb235dee20cf855 GIT binary patch literal 298 zcmZXPF;4<P5QX0yaEEs%2bM-V3$+kC8$xrDKtgCR_RBHR)nnJ}-ua{KtV}5U0sbh% z92E&$%(w5&?3?W0|MnNa1I}W!kVZI-&?kf=ZFDszw61TS3GLjjnUKx3;YGb!v3pXh zQk-~cYgh0@H=>{0&4(^k#kIS8Q=f{^U9hjF)>jb*Dca}|E)J%y=GMNeS61s~T@>uS zgdAJx%ouigsk~>I$eQS3sm#mp(K+h~$w4IU5y(%PLvoXq!cf$ukc6GvAJF%{9Z3xv YlfL9hS5$x##Cs;lgt2r3B<SIM2UeFq*#H0l literal 0 HcmV?d00001 diff --git a/Compilateur.jj b/Compilateur.jj index 5bed161..c8c5a64 100644 --- a/Compilateur.jj +++ b/Compilateur.jj @@ -9,19 +9,23 @@ import java.io.InputStream; public class Compilateur { public static void main(String args[]) { try { - //System.out.print("Tapez une Expression : "); + // Ouvre le fichier "test.js" pour lecture FileInputStream fis = new FileInputStream("test.js"); + // Crée une instance du parseur Compilateur parseur = new Compilateur(fis); - Programme programme = parseur.mainNT(); // Changer pour Programme - System.out.println("Assembly code : \n" + programme.toAssembly()+"Halt"); // Modifier pour générer l'assembleur + // Parse le fichier et obtient le programme + Programme programme = parseur.mainNT(); + // Affiche le code assembleur généré + System.out.println("Assembly code : \n" + programme.toAssembly() + "Halt"); System.out.println("C'est bien une expression arithmétique !!"); - }catch (FileNotFoundException e) { + } catch (FileNotFoundException e) { System.out.println("Le fichier spécifié n'a pas été trouvé."); - }catch (TokenMgrError e) { - System.out.println("Ceci n'est pas une expression arithm\u00e9tique :"+e.toString()); - }catch (ParseException e){ - System.out.println("Ceci n'est pas une expression arithm\u00e9tique :"+e); - } } + } catch (TokenMgrError e) { + System.out.println("Ceci n'est pas une expression arithmétique : " + e.toString()); + } catch (ParseException e) { + System.out.println("Ceci n'est pas une expression arithmétique : " + e); + } + } } PARSER_END(Compilateur) @@ -34,103 +38,89 @@ TOKEN : | < EOL: ";\n" | ";" > | < NAN: "NaN"> | < IMPORT: "import"> - | < IDENT : (["a"-"z", "A"-"Z", "0"-"9", "/"])+ > + + | < SEMICOLON : ";" > + //| < EQUAL : "=" > + | < IDENT : ["a"-"z"] (["a"-"z", "A"-"Z", "0"-"9", "_"])* > } SKIP : { " " | "\t" | "\n" | < "//" (~["\n", "\r"])* ("\n" | "\r" | "\r\n") > | < "/*" (~["*"])* "*" (~["/", "*"] (~["*"])* "*" )* "/" >} -Programme mainNT () : -{ - Programme prg; -} -{ - prg=programme() <EOF> { return prg; } +Programme mainNT() : { + Programme programme; +} { + programme=programme() <EOF> { return programme; } } -Programme programme() : -{ - List<Commande> programme = new ArrayList<>(); + +Programme programme() : { + List<Commande> programme = new ArrayList<Commande>(); Commande commande; -} -{ +} { ( - commande=commande() { - - programme.add(commande); - - } - )* - { - return new Programme(programme);} - + commande=commande() { programme.add(commande); } + )* { + return new Programme(programme); + } } -Commande commande() : -{ - Commande expr; - Programme prg; -} -{ - expr=expression() <EOL> { return expr; } - | <IMPORT> expr=facteur() <EOL> { return new Import(expr); } - | "{" prg=programme() "}" {return new Bloc(prg);} +Commande commande() : { + Token id; + ExpressionA expr; + Programme prg; +} { + LOOKAHEAD(2) id=<IDENT> "=" expr=expression() <EOL> { return new Assignment(id.image, expr); } // le lockhead pour eviter les conflit !! + | expr=expression() <EOL> { return expr; } + | <IMPORT> expr=facteur() <EOL> { return new Import(expr); } + | "{" prg=programme() "}" { return new Bloc(prg); } } - - -ExpressionA expression() : -{ +ExpressionA expression() : { ExpressionA gauche, droite; -} -{ - gauche=comp() ( - "==" droite=comp() { gauche = new Egal(gauche, droite); } - | ">=" droite=comp() { gauche = new GrEgNb(gauche, droite); } - | ">" droite=comp() { gauche = new GrStNb(gauche, droite);} - | "<" droite=comp() { gauche = new LoStNb(gauche, droite);} - | "<=" droite=comp() { gauche = new LoEqNb(gauche, droite); } - | "!=" droite=comp() { gauche = new NotEql(gauche, droite); } - | "&&" droite=comp() { gauche = new Et(gauche, droite); } - )* - { return gauche; } -} - -ExpressionA comp() : -{ +} { + gauche=comp() ( + "==" droite=comp() { gauche = new Egal(gauche, droite); } + | ">=" droite=comp() { gauche = new GrEgNb(gauche, droite); } + | ">" droite=comp() { gauche = new GrStNb(gauche, droite); } + | "<" droite=comp() { gauche = new LoStNb(gauche, droite); } + | "<=" droite=comp() { gauche = new LoEqNb(gauche, droite); } + | "!=" droite=comp() { gauche = new NotEql(gauche, droite); } + | "&&" droite=comp() { gauche = new Et(gauche, droite); } + )* { + return gauche; + } +} + +ExpressionA comp() : { ExpressionA gauche, droite; -} -{ +} { gauche=terme() ( - "+" droite=terme() { gauche = new Plus(gauche, droite); } + "+" droite=terme() { gauche = new Plus(gauche, droite); } | "-" droite=terme() { gauche = new Moins(gauche, droite); } - )* - { return gauche; } + )* { + return gauche; + } } -ExpressionA terme () : -{ + +ExpressionA terme() : { ExpressionA gauche, droite; -} -{ +} { gauche=facteur() ( - "*" droite=facteur() { gauche = new Mult(gauche, droite); } - | "/" droite=facteur() { gauche = new Div(gauche, droite);} + "*" droite=facteur() { gauche = new Mult(gauche, droite); } + | "/" droite=facteur() { gauche = new Div(gauche, droite); } | "%" droite=facteur() { gauche = new Modulo(gauche, droite); } - )* - { return gauche; } + )* { + return gauche; + } } -ExpressionA facteur() : -{ +ExpressionA facteur() : { ExpressionA expr; -} -{ - "(" expr=expression() ")" { return expr; } - | "-" expr=facteur() { return new Neg(expr); } - | "!" expr=facteur() { return new Not(expr); } - | <NOMBRE> { return new Num(Integer.parseInt(token.image));} - | <FLOAT> { return new FloatT(Float.parseFloat(token.image));} - | <BOOLEAN> { return new Bool(Boolean.parseBoolean(token.image));}// Construit un nœud Num - | <IDENT> { return new Ident(token.image);}// Construit un nœud Num +} { + <NOMBRE> { return new Num(Integer.parseInt(token.image)); } + | <FLOAT> { return new FloatT(Float.parseFloat(token.image)); } + | <BOOLEAN> { return new Bool(Boolean.parseBoolean(token.image)); } + | <IDENT> { return new Ident(token.image);} } diff --git a/test.js b/test.js index dcf8e1c..1308a88 100644 --- a/test.js +++ b/test.js @@ -1,9 +1 @@ -import malib; -/// True + False -/* cgvhjbkn +1 */ -{ - 9-1; - x+1; - -} -5*5; +2*10+x == 3*8; \ No newline at end of file -- GitLab From 0b08da0f3c9406f2902e42c9183d58feb4df4aee Mon Sep 17 00:00:00 2001 From: boufala <lamia.boufala@eud.univ-paris13.fr> Date: Thu, 30 May 2024 18:21:00 +0200 Subject: [PATCH 4/4] done with fragement 3 --- AST/Commande.java | 4 ++- AST/DoWhileCommand.java | 18 +++++++++++ AST/EmptyCommand.java | 10 +++++++ AST/IfElseCommand.java | 26 ++++++++++++++++ AST/Programme.java | 5 +++- Compilateur$JJCalls.class | Bin 378 -> 378 bytes Compilateur$LookaheadSuccess.class | Bin 298 -> 298 bytes Compilateur.jj | 46 ++++++++++++++++++----------- test.js | 22 +++++++++++++- 9 files changed, 111 insertions(+), 20 deletions(-) create mode 100644 AST/DoWhileCommand.java create mode 100644 AST/EmptyCommand.java create mode 100644 AST/IfElseCommand.java diff --git a/AST/Commande.java b/AST/Commande.java index 6c6ea43..48a8a76 100644 --- a/AST/Commande.java +++ b/AST/Commande.java @@ -1,4 +1,6 @@ package AST; public abstract class Commande extends AST{ public abstract String toAssembly(); -} \ No newline at end of file +} + + diff --git a/AST/DoWhileCommand.java b/AST/DoWhileCommand.java new file mode 100644 index 0000000..c3e7629 --- /dev/null +++ b/AST/DoWhileCommand.java @@ -0,0 +1,18 @@ +package AST; + +// Classe pour représenter une variable +public class DoWhileCommand extends Commande { + private ExpressionA cond; + private Commande cmd; + + public DoWhileCommand(Commande cmd, ExpressionA expr) { + this.cmd=cmd; + this.cond=expr; + } + @Override + public String toAssembly() { + String s = (this.cmd).toAssembly(); + String c = (this.cond).toAssembly(); + return s + c + "ConJmp -" + (Tools.countNewLines(s) + Tools.countNewLines(c)-1) + "\n"; + } +} diff --git a/AST/EmptyCommand.java b/AST/EmptyCommand.java new file mode 100644 index 0000000..909bd31 --- /dev/null +++ b/AST/EmptyCommand.java @@ -0,0 +1,10 @@ +package AST; + +public class EmptyCommand extends Commande{ + public EmptyCommand(){} + + @Override + public String toAssembly(){ + return ""; + } +} \ No newline at end of file diff --git a/AST/IfElseCommand.java b/AST/IfElseCommand.java new file mode 100644 index 0000000..042def1 --- /dev/null +++ b/AST/IfElseCommand.java @@ -0,0 +1,26 @@ +package AST; + +// Classe pour représenter une commande if-then-else +public class IfElseCommand extends Commande { + private ExpressionA condition; + private Commande trueBranch; + private Commande falseBranch; + + public IfElseCommand(ExpressionA condition, Commande trueBranch, Commande falseBranch) { + this.condition = condition; + this.trueBranch = trueBranch; + this.falseBranch = falseBranch; + } + + @Override + public String toAssembly() { + + String t = trueBranch.toAssembly(); + String f = falseBranch.toAssembly(); + String e = this.condition.toAssembly(); + + + + return e + "Conjmp "+ Tools.countNewLines(t) +"\n"+ t + "Jump "+ Tools.countNewLines(f) + "\n" + t ; + } +} diff --git a/AST/Programme.java b/AST/Programme.java index d75d30a..75f2d5d 100644 --- a/AST/Programme.java +++ b/AST/Programme.java @@ -15,7 +15,10 @@ public class Programme extends AST { public String toAssembly() { String assembly = ""; for (Commande commande : commandes) { - assembly = assembly+commande.toAssembly()+"Drop\n"; + assembly = assembly+commande.toAssembly(); + if(commande instanceof ExpressionA){ + assembly+="Drop"+"\n"; + } } return assembly; diff --git a/Compilateur$JJCalls.class b/Compilateur$JJCalls.class index baf1265786d748a5b9397f27aaa1961250074ad0..3d0aa7fce1b2f43f24b9be3321d8f0397f1108c1 100644 GIT binary patch delta 13 Ucmeyx^owajI3r`m<OoJ3045#;cmMzZ delta 13 Ucmeyx^owajI3uIW<OoJ303~V!Q~&?~ diff --git a/Compilateur$LookaheadSuccess.class b/Compilateur$LookaheadSuccess.class index bb6b73a53335b13b437d3f2b5bb235dee20cf855..bd052506d726cd77265dab73e2ae256b1d557a5b 100644 GIT binary patch delta 13 UcmZ3*w2Em1J0s)i$sCMI0396zn*aa+ delta 13 UcmZ3*w2Em1J0s(&$sCMI033J&dH?_b diff --git a/Compilateur.jj b/Compilateur.jj index c8c5a64..ad7c78c 100644 --- a/Compilateur.jj +++ b/Compilateur.jj @@ -29,26 +29,34 @@ public class Compilateur { } PARSER_END(Compilateur) - TOKEN : { < FLOAT: (("0" | ["1"-"9"] (["0"-"9"])* )? "." (["0"-"9"])+ (("E" | "e") ("+" | "-")? (["0"-"9"])+)? ) | (["0"-"9"])+ (("E" | "e") ("+" | "-")? (["0"-"9"])+)> | < NOMBRE: (["1"-"9"] (["0"-"9"])* | "0") (("E" | "e") ("+" | "-")? (["0"-"9"])+)?> | < BOOLEAN: "True" | "False"> - | < EOL: ";\n" | ";" > | < NAN: "NaN"> | < IMPORT: "import"> - - | < SEMICOLON : ";" > - //| < EQUAL : "=" > - | < IDENT : ["a"-"z"] (["a"-"z", "A"-"Z", "0"-"9", "_"])* > + | < IF: "if" > + | < ELSE: "else" > + | < DO: "do" > + | < WHILE: "while" > + | < EOL: ";\n" | ";" > + | < SEMICOLON: ";" > + | < ASSIGN: "=" > + | < PLUS: "+" > + | < MINUS: "-" > + | < MULTIPLY: "*" > + | < DIVIDE: "/" > + | < LPAREN: "(" > + | < RPAREN: ")" > + | < LBRACE: "{" > + | < RBRACE: "}" > + | < IDENT: (["a"-"z"])+ (["a"-"z", "A"-"Z", "0"-"9", "_"])* > } + SKIP : { " " | "\t" | "\n" | < "//" (~["\n", "\r"])* ("\n" | "\r" | "\r\n") > | < "/*" (~["*"])* "*" (~["/", "*"] (~["*"])* "*" )* "/" >} - - - Programme mainNT() : { Programme programme; } { @@ -69,22 +77,26 @@ Programme programme() : { Commande commande() : { Token id; ExpressionA expr; + Commande cmd1, cmd2; Programme prg; } { - LOOKAHEAD(2) id=<IDENT> "=" expr=expression() <EOL> { return new Assignment(id.image, expr); } // le lockhead pour eviter les conflit !! + LOOKAHEAD(2) id=<IDENT> "=" expr=expression() <EOL> { return new Assignment(id.image, expr); } | expr=expression() <EOL> { return expr; } | <IMPORT> expr=facteur() <EOL> { return new Import(expr); } - | "{" prg=programme() "}" { return new Bloc(prg); } + | <LBRACE> prg=programme() <RBRACE> { return new Bloc(prg); } + | <EOL> {return new EmptyCommand();} + | <IF> <LPAREN> expr=expression() <RPAREN> cmd1=commande() <ELSE> cmd2=commande() { return new IfElseCommand(expr, cmd1, cmd2); } + | <DO> cmd1=commande() <WHILE> <LPAREN> expr=expression() <RPAREN> <EOL> { return new DoWhileCommand(cmd1, expr); } } ExpressionA expression() : { ExpressionA gauche, droite; } { - gauche=comp() ( - "==" droite=comp() { gauche = new Egal(gauche, droite); } + gauche=comp() ( + "==" droite=comp() { gauche = new Egal(gauche, droite); } | ">=" droite=comp() { gauche = new GrEgNb(gauche, droite); } - | ">" droite=comp() { gauche = new GrStNb(gauche, droite); } - | "<" droite=comp() { gauche = new LoStNb(gauche, droite); } + | ">" droite=comp() { gauche = new GrStNb(gauche, droite); } + | "<" droite=comp() { gauche = new LoStNb(gauche, droite); } | "<=" droite=comp() { gauche = new LoEqNb(gauche, droite); } | "!=" droite=comp() { gauche = new NotEql(gauche, droite); } | "&&" droite=comp() { gauche = new Et(gauche, droite); } @@ -108,7 +120,7 @@ ExpressionA terme() : { ExpressionA gauche, droite; } { gauche=facteur() ( - "*" droite=facteur() { gauche = new Mult(gauche, droite); } + "*" droite=facteur() { gauche = new Mult(gauche, droite); } | "/" droite=facteur() { gauche = new Div(gauche, droite); } | "%" droite=facteur() { gauche = new Modulo(gauche, droite); } )* { @@ -122,5 +134,5 @@ ExpressionA facteur() : { <NOMBRE> { return new Num(Integer.parseInt(token.image)); } | <FLOAT> { return new FloatT(Float.parseFloat(token.image)); } | <BOOLEAN> { return new Bool(Boolean.parseBoolean(token.image)); } - | <IDENT> { return new Ident(token.image);} + | <IDENT> { return new Ident(token.image); } } diff --git a/test.js b/test.js index 1308a88..4d63857 100644 --- a/test.js +++ b/test.js @@ -1 +1,21 @@ -2*10+x == 3*8; \ No newline at end of file +// to test the if else +if (x<10){ + x+1; +}else{ + y=10; +} +// to test the do while +do { + y=y+1; +}while(y<10); + +// to test the compressed sequence of commands + +{ + e+1; + a-10; + 3+1; +} +// to test the EmptyCommand +; + \ No newline at end of file -- GitLab