diff --git a/src/l.cfg b/src/l.cfg
index 82998c3fb54e674635dc0a0d12c6664c692ca625..e2c8d422adcd3bb241dc880b06540cb2c595b98d 100644
--- a/src/l.cfg
+++ b/src/l.cfg
@@ -11,37 +11,37 @@ Tokens
 
 espaces = (' ' | 13 | 10)+;
 commentaire= '#' [[0 .. 0xffff] - [10 + 13]]* (10 | 13 | 10 13);
-nombre = chiffre+;
-ou = '|';
-et = '&';
+add = '+';
+sub = '-';
+mult = '*';
+div = '/';
 egal = '=';
 inf = '<';
-infegal = '<=';
-sup = '>';
-supegal = '>=';
-plus = '+';
-moins = '-';
-mul = '*';
-div = '/';
-non = '!';
-gpar = '(';
-dpar = ')';
+or = '|';
+and = '&';
+not = '!';
 vrai = 'vrai';
 faux = 'faux';
-tantque = 'tantque';
-faire = 'faire';
-pvirg = ';';
-si = 'si';
-alors = 'alors';
-sinon = 'sinon';
-retour = 'retour';
+gpar = '(';
+dpar = ')';
 gacc = '{';
 dacc = '}';
-epsilon = ;
-id = alpha[alpha + chiffre]+;
 gcro = '[';
 dcro = ']';
+pvirg = ';';
 virg = ',';
+si = 'si';
+alors = 'alors';
+sinon = 'sinon';
+tantque = 'tantque';
+faire = 'faire';
+retour = 'retour';
+ecrire = 'ecrire';
+lire = 'lire';
+int = 'int';
+boolean = 'boolean';
+nombre = chiffre+;
+id = alpha alphanum*;
 
 Ignored Tokens
 
@@ -49,21 +49,25 @@ espaces, commentaire;
 
 Productions
 
-exp = {ou} exp ou exp1 | {exp1} exp1;
-exp1 = {et} exp1 et exp2 | {exp2} exp2;
+epsilon = ;
+
+exp = {or} exp or exp1 | {exp1} exp1;
+exp1 = {and} exp1 and exp2 | {exp2} exp2;
 exp2 = {egal} exp2 egal exp3 | {inf} exp2 inf exp3 | {exp3} exp3;
-exp3 = {plus} exp3 plus exp4 | {moins} exp3 moins exp4 | {exp4} exp4;
-exp4 = {mul} exp4 mul exp5 | {div} exp4 div exp5 | {exp5} exp5;
-exp5 = {non} non exp5 | {exp6} exp6;
-exp6 = {parenthesis} gpar exp dpar | {nombre} nombre | {vrai} vrai | {faux} faux | {lire} lire() ;
+exp3 = {add} exp3 add exp4 | {sub} exp3 sub exp4 | {exp4} exp4;
+exp4 = {mult} exp4 mult exp5 | {div} exp4 div exp5 | {exp5} exp5;
+exp5 = {not} not exp5 | {exp6} exp6;
+exp6 = {parenthesis} gpar exp dpar | {nombre} nombre | {var} var | {vrai} vrai | {faux} faux | {ecrire} ecrire gpar dpar;
 
-ins = {affectation} var egal exp |
+var = {id} id | {crochets} id gcro exp dcro;
+
+ins = {affectation} var egal exp pvirg|
 {fairetantque} tantque exp faire bloc |
-{fonction} id gpar lexp dpar |
+{fonction} id gpar lexp dpar pvirg|
 {sisinon} si exp alors [alors1]: bloc sinon [sinon1]: bloc |
 {sialors} si exp alors bloc |
 {retour} retour exp pvirg |
-{ecrire} ecrire(e);
+{ecrire} ecrire gpar exp dpar pvirg;
 
 bloc = {accolades} gacc lins dacc;
 lins = {lins} ins lins | {epsilon} epsilon;
@@ -71,19 +75,18 @@ lins = {lins} ins lins | {epsilon} epsilon;
 lexp = {lexp2} lexp2 | {epsilon} epsilon;
 lexp2 = {virgule} exp virg lexp2 | {exp} exp;
 
-var = {id} id | {crochets} id gcro exp dcro;
 
-type = {bool} bool | {entier} entier;
+type = {boolean} boolean | {int} int;
 
 typeopt = {type} type | {epsilon} epsilon;
 
 decvar = {var} type id | {tableau} type id gcro nombre dcro;
 
-decfonc = {fonction} type id gpar [params]: ldecvar rpar [locals]: ldecvar bloc;
+decfonc = {fonction} type id gpar [params]: ldecvar dpar [locals]: ldecvar bloc;
 
 ldecvar = {listedecvar} ldecvar2 | {epsilon} epsilon;
-ldecvar2 = {listedecvar2} decvar virg ldecvar2 | decvar;
+ldecvar2 = {listedecvar2} decvar virg ldecvar2 | {decvar} decvar;
 
 ldecfonc = {listedecfonc} decfonc ldecfonc | {epsilon} epsilon;
 
-prog = ldecvar ldecfonc;
\ No newline at end of file
+prog = {prog} ldecvar ldecfonc;
\ No newline at end of file