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
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
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
zcmb7J4SZD9mH*$F$;@Q(l1yGcBtrrdiZlrjKCFQzAru0sfrL;Jr4d~iGLK}2$xNI~
z_^?!Ii`BJAEd@VNn-tX4N-HL1NfjzxY_-<5YS-Pm?sna7?W$edt?s&2l=Oezdy|BZ
z-QRDAoO|9o_ug~QJ@<Uw$8+bN_yK^WYDOj;aC+d<kO8;CWetg*-bgHzGWwJ4iLFMw
zB@_>J8A*k#u(7$nt1Xo@LOlwF&C$@d(7Z@u-r8g&p0dcbJ~H!a$b?T}N;KM*O7yZP
z67On`q>N-Jwqi?Y<9vmT@}^Z4O)^;1kc}KNk49S(+l)2i{Y@23BAH)99(0B5XtXDk
z>g+bct0VESf--vxG!#m&Hr~57(I?X`(=bIkJe~c?hVD>OmI`Q?YA+>nElY8126e!n
zA2MLNh9JrmiY-|#6nue5?kcC?_AD<oX8m^C4~jc?ph80>W>cz2ythBKvCr0+-rN@H
z>5Um8&$zngqRNAL8s=kxg8#w+3SMeEEHf0G<rNJcT%nMk)_haz${n3XZz__Ai~Lt=
zs20Uj8*QmjGG!`L1X`@&leQA$#&-6ljD~nhdTKS)VTpn-8toHun~_p*Y-n=cJT^8a
z13sl;nW@NVG@0m+hh?1x4J)vc>#Q@H;*r!kq4$~cU6bJ)vos>(nl!A!YK4Mmw4vMR
z+`492INZKHVXn{dG=ioI&Nw$QqgBINe8#kf@fo6XjuT<pG_>Pt1zn^~+9uW1L-QoN
z{0){x#zOI~dDhv{9Oq)ahR>pdn*6kpGRIP&@`_83-Jsz*T+f|#8L8z)S0vsXi5uq5
zXsmOwQNt$b&PjJSBx3zN)css+*3c<kK6b5)hh?6S4Gmk;3`tIp??%LfsD`bGQ4gk@
zQ9z!J{a8}obg_UH&1P?HCb|*VkdR}^+?<wDs5fXxnuldr5(q7&p<ifO=15Bbp>Nl)
z!{orRX|d+wMh%}6OZ1t$H`nvv^J$YaRePSv-K=3ZzF;0$V<Z-{#m}UEEm=heU(&Eg
z4%NLm)Va04S6oGbrzs|Kn})v@{roR3H-F=NIrpz<*o!;3+h{bEu-9;GSmni6$;gAR
zF+7;mmagQ=WHOPIIbYXsz}z<@K(n#KG&&#d#9bQh#yym#E<)R_SD0FUZBx@F)Gfv-
zj1FnIPZ-ffB4TRIMqJ1bX!wSZvtvfQE7je)rA5M%^bBhFrudZCb{R7u9ntWh5b2w7
zV+X?}ovqJ@hcV>Aw?riRli&1fQ^~EHqef@Si*GB$R<2vux~?YJW^^Xv;b3Pd77L~l
zLB7xj`a4sJWH7NMDBc_C491KdMzSi{k?0Th^!KHL{e4Ez^3w7OnI(IUgkq5!jbN(V
zNYC09N=8DPV@6+<Xy~Yj^Bskv@{4VdI+0_0Ov5oeP9<8rnGMP>4sO=a5e?sy)AzP*
zk5EDF2~pACXgDFt%MBY_LjAE+`hc9fX&cf&Cp@X)Bu+6U^@O$>4T*SXD78M4>gE%7
z8&A>a3mF+M7BUl0;j{-o)bO{G(I%<2ZD(J~VDfS%`cob}eSV*rr@Z(vlZ(%bXBh{V
zEb-zw;(FreNv`+e=R|d0yg+IlsV@<i5&s>@v%UCxqPbrDim1|ye<Ygc#Xk{U?!~W(
z%Ds4vsKSfi5S4lHTc)TLD;t+x-P|sE`JIM;mjFkjvMhE@sK+qv=S>Z7iTyASGEAiP
zWu=|zWACREkz2U@r-na?yU+kriMFkgULn4#;lG5)L`!0?(MdB9`g<DwXMAu=B58Q=
zK2<(pidHCH-XDpD4d&55V@RfbsNo}=qx7~{(1kBL2zw3#mV<_`l#I_XeaNGnjKY&D
zjY(&k(`TesOs+Jh*mih9sZntaGebin%=nxu;dV`b&t@apE_O^c(ZM>mwuE}^cM0fg
z=y!JT&_yd$VuaqbtW)wQjmcMT2QA^Oiz+T0k#A1FkV=g*v2j6qwCOb$X7O5j4Ns%4
zGiHYzUt6L-*=aChQq+=3YOtc1Rd7|w5zs=HClV=odZ@R>NOdQ|eYtK`=u<`NGLM=<
z2T{ceGbc_f65qz6&CY+8&oqW4NbFR&XR<@v11+Xkh2mkl|IFq@f)Tp*qLZ9VId5Y7
z&R%13r=52vr(!FV)lT+Pn?(adSsUxZTCbX_P-}+nnqX5`JRub$W7RfBs<6Z~IVUq%
z8Nr&MstTIQ4)(`8yP52ba23s~DIPbH4Y5#PpV8-0(-bbhNGX@vt49SDrv2YT8Rsm;
zpp2IPFqC3}$x4s)GNV+n)Fi}HB)}7UCGVJ+A<o3Cy-dtP%ET;LP0YfUxL91?#B^}t
zDU$0<OeZ!m{no_vQ)08YBo2UC#>A}POiYI)_KBkjmb7JJ<|$&cA|@_ErgEta?n0z5
zWiDnCMMmWa)Z=_m%EQ)e60^AoOL=?f6{I=YmlJrDEs!OR<ES*|97zm7E*H|3mrqV8
zjSN_l+6-orBn-5`^ig;Mu1%xJlIfF|EaGTZ>Gq5{WGPIwsUye@j3A$rCT8TA+yZcM
zh8HEA$y&misaBZtfR~3+B;r0VTnIiwgiuE4C0tI}MJOkHiBLhfolr^m8eul!9>QG0
z0AU{CVL~0@I|R}E_X+ic(@wv86vapV1(db`C8L;j)alO?lGCqSDBnW47Rt6zj)nY!
z{62H?44GVjnS%V8CTW(*&uJ^o(s?6qN5FK%Fav#<$&&7J+>DRo%iPEv6#f7OzmGy6
z#sWNoE10#f#Bm<UNi4=0)Zkgv;up*-a$b4JK8u(;%WeI#+*#CCkeaeA<u&SAPH)>V
z%GZx#&IpQzptU%s@hsQ7j@o(#)^m(llxQY@8n<wB=7D?RbNM~8JrZW630|8pBTdM%
z2_<QQCIngG6Gu&+K3*0V+U8bIQv)w2KCC2lIc=r^1-zIPp%HV?#7(ZE46E^JG-C}~
zcnMg8jcDcRujR>KZEjhEr^SPX-a<cr<ix9}wOiK=?v_e%eABtapFM&_uKHorI0LPE
zeYI;COI@2fMzB<`9|TW)Irr}W)L}gB<HOEH863ICIaXTrZOSJgKNmr4u9*-ee4enk
z0F6Z%=3c!S<a1R4n(g-+3SI68;dWQMT%%Ysgiw0uA-IRoc0q4Ly7yizHW>|JzQ|NH
zh;nM3^UKmB%=!6+E)ThTs$EvEv$SMzta(U%j+64R`><+|o%omDbirnLu(K$){KS`5
zSnonh0}T)~KHwnXF~Uy>zaqTDF`6)K97G`%G>k<Zu1!>|KdW^JKb4;LL7X|S$HSh-
zrN<b=Bi?G)5RS-O{~+$8>2OyE<TW{nz2{AHbJ~qI!{m8A!f=!H^bO*(7K_iwYitlr
z=MBu{z(vv%8pOQwdVK6Dm7YuPLlk-Lg&{2Dh&+tl<agg#oiVOUH#wPxApwa$(IG_j
zZxy=q`T_V0U37GYx_q&+JxYm^>iyXzw6#UyjwOT0m`Xnz_r8yI){p?@xYKdS@j%)!
z)C^ojz8wsJ*Ya|-ff4*Vy2|y)$0nL!h*4rQ9VE<X(8Zo8TV6x?Z#&{N%LFfUy|@)A
z?B~VtAht1nZ0A*H2V=-iJjCnaF$T<0Mw!zb`3!^ROT6B_j9c(35B}Gj`5WAZ*YOqB
zt9$V_qtJWiHEq9Y#zEDNyVMrkt>V0b?Z$oTHr%iFVL;u5LG=KRsE6>NI)Nee6uzZi
z#G~pJ996I3G4%$HsShyXaNv860-SJ^VAN5Cla4EJ%2AEej^+5FqZv;-HsM)^f#)1C
zJny&xKXdfs=Z>9t!LbW3I`-iu$DR14;}ENLiFZr!v2(~*O8GxTj;lO3-<|Ds>p5&b
zfagQ#uCrKOT%4U#T+F{>(mq0=a^=4dSAJ15qXy59cV9a?o}#)Xab7=+b;HPASmQ2s
zKZ9)Rw5}OKMzOoudbxIqh5t$diJWDKp+#`Gnvo-S_9(hmSC$+{Pi5(G^i~$Sj-#)#
zFylD3RUYF4R@|4xf#33MUuW|B9X`e)Vh-NGC-5eN-dhZb|H1J0HpAT?SX}&(R`4ft
z&qZ*IvBD5Z`SUObV41X;Dl@$m#{zQY05#iLX9>2`4E1`8lh)~=b&leu)s@GjkICqZ
z;tatfU|_$+jDKc4^G}*N_Sz7`?9kY8y`BungbZ#a>s+z<#ly&VZJK%*c`{=v-@>l2
z$@O-Qp#RJx(_9Hf!guV3iM6RXTa)2>RpWAs_Dt7UFPLHTi$kccal5KBrn-*6tM3~E
zS;>fNYN+`lzi$9pg0lyawa1~H^+Ry)ajL?MLztFkafzu<;?9mjuC>3Uv{?8!PvGEF
z%#8e&NjKYtY0N#%w2otRkTb;AfgQpus+6}y9)qU*$W=c0m4*V9jVUSzB`O!wl#W>{
zA9bn#O{xfM)n&|6Q~2?!nBPbOFjNWRsua7_G#pStx=<Mosd5}v75q?8$vgXOy2%`z
zR@FG8=Hf@Hir3hAcva2E@6`hQK`q3)>Poz)7U8T~%sbd8d5@?y4WkbFN8Ey<VeiWE
z%vetQcFryxLpfLqN`ZEUbs~v$6}F9h&+~i$N0B`7ZlioE%l3qY%+!+qY5Tbn=rReA
z%F<GVStY7vR6?V<uvsN~sfm^L{6@3NU|<}^y{2(6`rXe=!Iw+%GmAjgL}jj`5?j+e
zODI$J|4*iMlxcl>zQ$^RpCWCUTA9CPPcw!w5U67QA3*Wsv=C^O4$@mEHmXa`SJxs-
zU58?IJwGgOOfxTIk)FfS#44;-aG(^qH2#USIE=%As@A|BsHuZvZ%%Nvw%f@PJB)xb
z(j29*<+oOwV+Dm3j+p_b$*BaHZ&lgW{BF2Zgc^!+;N3hNOOW-pAc4vgc!(bGW8{dj
z>yNlj;L)dMkDz=)jw1Q?t$N5O!OiqCGA6mpK2x4ts4;$*cX;Ga3TG}t^R^aQz&9sp
z*|G?O-FI0g4^PNvX>A+%Zl`=ZcqBV%LHyWcPp=mv<@6$_Bt^!OVH_X9e%@ZnS%^*W
zvE=&#dF<gg|68c9FH^=_sV089wt20lAi^u4kFuEaXV+5QW8V<N9SG>(Zyg$YXJWsW
zTziqB?x64P<6ggN?v;D|kc;?5$nian>%Wrwqy8uD&(i-v?(Z&6yPMPab!=Q7%gRav
zuEV?^-49*VA9w;!@O~yoz#Gv13q`u0vHJmrkO5l%peYiqDKp2E$=;}X(E5)G)jo_L
z@S5i@JcTnIPJLfnhfB3}WDwj055Y_DyY(Nj_2|#A_3A%io2mbltxx|M+bsPTY&HEw
zw%PhG+2-gkv(452fvsPEg>9bxDqCIuXSVtJzpyRP|Fvxd>s%*&9ZqNK2o5t3>?a&|
zS+e{adtdh#O1Go6!$rs-xCtJDm*AHdzr6X)*GzfxNs}dwCQY_9Inv}x<Ci8+8eN)v
zX$l-%{SDX2tPW=Ze!q4Ex7*Ke^ZAeFb0(kO8Grh3fA&e<$p-uZK{Zd}&mAZ5!3fR{
z<Ln5=CQQz{kYq7nzQSDkE-N5bKK!`$b?SdWJ)$zzQB|lOQ)Oyc%~r?NmFfvqr=C;|
l>ZEE>r{Gk1G)9NgnF8c9f?^s_D!`yG-mO%rny$)F{1+Xo{G$K>

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
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

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
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
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