diff --git a/src/Compiler.java b/src/Compiler.java
index 09f1c74c34d41847f620fc28214e62f0eaca8c51..14ead4d0a3489db4ccddd2c30994e8f5efe0b3c3 100644
--- a/src/Compiler.java
+++ b/src/Compiler.java
@@ -39,9 +39,9 @@ public class Compiler
 		typeCheck();
 		System.out.println("[BUILD C3A] ");
 		buildC3a();
-		/*
 		System.out.println("[BUILD PRE NASM] ");
 		buildPreNasm();
+		/*
 		System.out.println("[BUILD FLOW GRAPH] ");
 		buildFg();
 		System.out.println("[SOLVE FLOW GRAPH]");
diff --git a/src/l.cfg b/src/l.cfg
index 11bfb2ec49140ff701d037b61da148958467869d..5b42890ececc3f43831a5bbf52f53c62f92f5155 100644
--- a/src/l.cfg
+++ b/src/l.cfg
@@ -22,6 +22,8 @@ inf = '<' ;
 fois = '*' ;
 diviser = '/' ;
 non ='!' ;
+modulo = '%';
+plusegale='+=' ;
 gparenthese = '(' ;
 dparenthese = ')' ;
 accoladeg = '{' ;
@@ -65,10 +67,16 @@ equals =
     {egale} equals egale add | {inf} equals inf add | {add} add ;
 
 add =
-    {plus} add plus mult | {moins} add moins mult | {mult} mult ;
+    {plus} add plus mod | {moins} add moins mod | {mod} mod ;
+
+mod = {mod} mod modulo mult | {mult} mult ;
 
 mult =
-    {fois} mult fois neg | {diviser} mult diviser neg | {neg} neg ;
+    {fois} mult fois neg | {diviser} mult diviser neg | {addto} addto ;
+
+
+addto = {addto} addto plusegale neg | {neg} neg ;
+
 
 neg =
     {non} non neg | {e6} e6 ;
diff --git a/src/lParser/analysis/Analysis.java b/src/lParser/analysis/Analysis.java
index 2f313cfaa11952624a6050c19332158a1097d5d3..a9e69cf56b6ad00513a7d574cf8750dc0efb6f1f 100644
--- a/src/lParser/analysis/Analysis.java
+++ b/src/lParser/analysis/Analysis.java
@@ -22,10 +22,14 @@ public interface Analysis extends Switch
     void caseAAddEquals(AAddEquals node);
     void caseAPlusAdd(APlusAdd node);
     void caseAMoinsAdd(AMoinsAdd node);
-    void caseAMultAdd(AMultAdd node);
+    void caseAModAdd(AModAdd node);
+    void caseAModMod(AModMod node);
+    void caseAMultMod(AMultMod node);
     void caseAFoisMult(AFoisMult node);
     void caseADiviserMult(ADiviserMult node);
-    void caseANegMult(ANegMult node);
+    void caseAAddtoMult(AAddtoMult node);
+    void caseAAddtoAddto(AAddtoAddto node);
+    void caseANegAddto(ANegAddto node);
     void caseANonNeg(ANonNeg node);
     void caseAE6Neg(AE6Neg node);
     void caseAParentheseE6(AParentheseE6 node);
@@ -79,6 +83,8 @@ public interface Analysis extends Switch
     void caseTFois(TFois node);
     void caseTDiviser(TDiviser node);
     void caseTNon(TNon node);
+    void caseTModulo(TModulo node);
+    void caseTPlusegale(TPlusegale node);
     void caseTGparenthese(TGparenthese node);
     void caseTDparenthese(TDparenthese node);
     void caseTAccoladeg(TAccoladeg node);
diff --git a/src/lParser/analysis/AnalysisAdapter.java b/src/lParser/analysis/AnalysisAdapter.java
index 80ac9c087f224efb888df78044df1f691413d677..f254aaf40831bb1aa36799f4d3d71d48b9c7fdd9 100644
--- a/src/lParser/analysis/AnalysisAdapter.java
+++ b/src/lParser/analysis/AnalysisAdapter.java
@@ -135,7 +135,19 @@ public class AnalysisAdapter implements Analysis
     }
 
     @Override
-    public void caseAMultAdd(AMultAdd node)
+    public void caseAModAdd(AModAdd node)
+    {
+        defaultCase(node);
+    }
+
+    @Override
+    public void caseAModMod(AModMod node)
+    {
+        defaultCase(node);
+    }
+
+    @Override
+    public void caseAMultMod(AMultMod node)
     {
         defaultCase(node);
     }
@@ -153,7 +165,19 @@ public class AnalysisAdapter implements Analysis
     }
 
     @Override
-    public void caseANegMult(ANegMult node)
+    public void caseAAddtoMult(AAddtoMult node)
+    {
+        defaultCase(node);
+    }
+
+    @Override
+    public void caseAAddtoAddto(AAddtoAddto node)
+    {
+        defaultCase(node);
+    }
+
+    @Override
+    public void caseANegAddto(ANegAddto node)
     {
         defaultCase(node);
     }
@@ -470,6 +494,18 @@ public class AnalysisAdapter implements Analysis
         defaultCase(node);
     }
 
+    @Override
+    public void caseTModulo(TModulo node)
+    {
+        defaultCase(node);
+    }
+
+    @Override
+    public void caseTPlusegale(TPlusegale node)
+    {
+        defaultCase(node);
+    }
+
     @Override
     public void caseTGparenthese(TGparenthese node)
     {
diff --git a/src/lParser/analysis/DepthFirstAdapter.java b/src/lParser/analysis/DepthFirstAdapter.java
index d9885cadeb4f27878369b32d0d80a15ceed28b02..e832c9bbb893225b643f6ac84dfde0240c8fe481 100644
--- a/src/lParser/analysis/DepthFirstAdapter.java
+++ b/src/lParser/analysis/DepthFirstAdapter.java
@@ -262,9 +262,9 @@ public class DepthFirstAdapter extends AnalysisAdapter
         {
             node.getPlus().apply(this);
         }
-        if(node.getMult() != null)
+        if(node.getMod() != null)
         {
-            node.getMult().apply(this);
+            node.getMod().apply(this);
         }
         outAPlusAdd(node);
     }
@@ -291,32 +291,82 @@ public class DepthFirstAdapter extends AnalysisAdapter
         {
             node.getMoins().apply(this);
         }
+        if(node.getMod() != null)
+        {
+            node.getMod().apply(this);
+        }
+        outAMoinsAdd(node);
+    }
+
+    public void inAModAdd(AModAdd node)
+    {
+        defaultIn(node);
+    }
+
+    public void outAModAdd(AModAdd node)
+    {
+        defaultOut(node);
+    }
+
+    @Override
+    public void caseAModAdd(AModAdd node)
+    {
+        inAModAdd(node);
+        if(node.getMod() != null)
+        {
+            node.getMod().apply(this);
+        }
+        outAModAdd(node);
+    }
+
+    public void inAModMod(AModMod node)
+    {
+        defaultIn(node);
+    }
+
+    public void outAModMod(AModMod node)
+    {
+        defaultOut(node);
+    }
+
+    @Override
+    public void caseAModMod(AModMod node)
+    {
+        inAModMod(node);
+        if(node.getMod() != null)
+        {
+            node.getMod().apply(this);
+        }
+        if(node.getModulo() != null)
+        {
+            node.getModulo().apply(this);
+        }
         if(node.getMult() != null)
         {
             node.getMult().apply(this);
         }
-        outAMoinsAdd(node);
+        outAModMod(node);
     }
 
-    public void inAMultAdd(AMultAdd node)
+    public void inAMultMod(AMultMod node)
     {
         defaultIn(node);
     }
 
-    public void outAMultAdd(AMultAdd node)
+    public void outAMultMod(AMultMod node)
     {
         defaultOut(node);
     }
 
     @Override
-    public void caseAMultAdd(AMultAdd node)
+    public void caseAMultMod(AMultMod node)
     {
-        inAMultAdd(node);
+        inAMultMod(node);
         if(node.getMult() != null)
         {
             node.getMult().apply(this);
         }
-        outAMultAdd(node);
+        outAMultMod(node);
     }
 
     public void inAFoisMult(AFoisMult node)
@@ -377,25 +427,75 @@ public class DepthFirstAdapter extends AnalysisAdapter
         outADiviserMult(node);
     }
 
-    public void inANegMult(ANegMult node)
+    public void inAAddtoMult(AAddtoMult node)
+    {
+        defaultIn(node);
+    }
+
+    public void outAAddtoMult(AAddtoMult node)
+    {
+        defaultOut(node);
+    }
+
+    @Override
+    public void caseAAddtoMult(AAddtoMult node)
+    {
+        inAAddtoMult(node);
+        if(node.getAddto() != null)
+        {
+            node.getAddto().apply(this);
+        }
+        outAAddtoMult(node);
+    }
+
+    public void inAAddtoAddto(AAddtoAddto node)
+    {
+        defaultIn(node);
+    }
+
+    public void outAAddtoAddto(AAddtoAddto node)
+    {
+        defaultOut(node);
+    }
+
+    @Override
+    public void caseAAddtoAddto(AAddtoAddto node)
+    {
+        inAAddtoAddto(node);
+        if(node.getAddto() != null)
+        {
+            node.getAddto().apply(this);
+        }
+        if(node.getPlusegale() != null)
+        {
+            node.getPlusegale().apply(this);
+        }
+        if(node.getNeg() != null)
+        {
+            node.getNeg().apply(this);
+        }
+        outAAddtoAddto(node);
+    }
+
+    public void inANegAddto(ANegAddto node)
     {
         defaultIn(node);
     }
 
-    public void outANegMult(ANegMult node)
+    public void outANegAddto(ANegAddto node)
     {
         defaultOut(node);
     }
 
     @Override
-    public void caseANegMult(ANegMult node)
+    public void caseANegAddto(ANegAddto node)
     {
-        inANegMult(node);
+        inANegAddto(node);
         if(node.getNeg() != null)
         {
             node.getNeg().apply(this);
         }
-        outANegMult(node);
+        outANegAddto(node);
     }
 
     public void inANonNeg(ANonNeg node)
diff --git a/src/lParser/analysis/ReversedDepthFirstAdapter.java b/src/lParser/analysis/ReversedDepthFirstAdapter.java
index b41333ca123f745d1b9b422de61780823e2d5740..5f21cc1f10392f5578b57155f9129b44173b42c5 100644
--- a/src/lParser/analysis/ReversedDepthFirstAdapter.java
+++ b/src/lParser/analysis/ReversedDepthFirstAdapter.java
@@ -254,9 +254,9 @@ public class ReversedDepthFirstAdapter extends AnalysisAdapter
     public void caseAPlusAdd(APlusAdd node)
     {
         inAPlusAdd(node);
-        if(node.getMult() != null)
+        if(node.getMod() != null)
         {
-            node.getMult().apply(this);
+            node.getMod().apply(this);
         }
         if(node.getPlus() != null)
         {
@@ -283,9 +283,9 @@ public class ReversedDepthFirstAdapter extends AnalysisAdapter
     public void caseAMoinsAdd(AMoinsAdd node)
     {
         inAMoinsAdd(node);
-        if(node.getMult() != null)
+        if(node.getMod() != null)
         {
-            node.getMult().apply(this);
+            node.getMod().apply(this);
         }
         if(node.getMoins() != null)
         {
@@ -298,25 +298,75 @@ public class ReversedDepthFirstAdapter extends AnalysisAdapter
         outAMoinsAdd(node);
     }
 
-    public void inAMultAdd(AMultAdd node)
+    public void inAModAdd(AModAdd node)
+    {
+        defaultIn(node);
+    }
+
+    public void outAModAdd(AModAdd node)
+    {
+        defaultOut(node);
+    }
+
+    @Override
+    public void caseAModAdd(AModAdd node)
+    {
+        inAModAdd(node);
+        if(node.getMod() != null)
+        {
+            node.getMod().apply(this);
+        }
+        outAModAdd(node);
+    }
+
+    public void inAModMod(AModMod node)
+    {
+        defaultIn(node);
+    }
+
+    public void outAModMod(AModMod node)
+    {
+        defaultOut(node);
+    }
+
+    @Override
+    public void caseAModMod(AModMod node)
+    {
+        inAModMod(node);
+        if(node.getMult() != null)
+        {
+            node.getMult().apply(this);
+        }
+        if(node.getModulo() != null)
+        {
+            node.getModulo().apply(this);
+        }
+        if(node.getMod() != null)
+        {
+            node.getMod().apply(this);
+        }
+        outAModMod(node);
+    }
+
+    public void inAMultMod(AMultMod node)
     {
         defaultIn(node);
     }
 
-    public void outAMultAdd(AMultAdd node)
+    public void outAMultMod(AMultMod node)
     {
         defaultOut(node);
     }
 
     @Override
-    public void caseAMultAdd(AMultAdd node)
+    public void caseAMultMod(AMultMod node)
     {
-        inAMultAdd(node);
+        inAMultMod(node);
         if(node.getMult() != null)
         {
             node.getMult().apply(this);
         }
-        outAMultAdd(node);
+        outAMultMod(node);
     }
 
     public void inAFoisMult(AFoisMult node)
@@ -377,25 +427,75 @@ public class ReversedDepthFirstAdapter extends AnalysisAdapter
         outADiviserMult(node);
     }
 
-    public void inANegMult(ANegMult node)
+    public void inAAddtoMult(AAddtoMult node)
+    {
+        defaultIn(node);
+    }
+
+    public void outAAddtoMult(AAddtoMult node)
+    {
+        defaultOut(node);
+    }
+
+    @Override
+    public void caseAAddtoMult(AAddtoMult node)
+    {
+        inAAddtoMult(node);
+        if(node.getAddto() != null)
+        {
+            node.getAddto().apply(this);
+        }
+        outAAddtoMult(node);
+    }
+
+    public void inAAddtoAddto(AAddtoAddto node)
+    {
+        defaultIn(node);
+    }
+
+    public void outAAddtoAddto(AAddtoAddto node)
+    {
+        defaultOut(node);
+    }
+
+    @Override
+    public void caseAAddtoAddto(AAddtoAddto node)
+    {
+        inAAddtoAddto(node);
+        if(node.getNeg() != null)
+        {
+            node.getNeg().apply(this);
+        }
+        if(node.getPlusegale() != null)
+        {
+            node.getPlusegale().apply(this);
+        }
+        if(node.getAddto() != null)
+        {
+            node.getAddto().apply(this);
+        }
+        outAAddtoAddto(node);
+    }
+
+    public void inANegAddto(ANegAddto node)
     {
         defaultIn(node);
     }
 
-    public void outANegMult(ANegMult node)
+    public void outANegAddto(ANegAddto node)
     {
         defaultOut(node);
     }
 
     @Override
-    public void caseANegMult(ANegMult node)
+    public void caseANegAddto(ANegAddto node)
     {
-        inANegMult(node);
+        inANegAddto(node);
         if(node.getNeg() != null)
         {
             node.getNeg().apply(this);
         }
-        outANegMult(node);
+        outANegAddto(node);
     }
 
     public void inANonNeg(ANonNeg node)
diff --git a/src/lParser/lexer/Lexer.java b/src/lParser/lexer/Lexer.java
index f399d7cb3615806003a09434043cc53bfec30f42..4f4645397812cf00331f281bc297ab3765544c74 100644
--- a/src/lParser/lexer/Lexer.java
+++ b/src/lParser/lexer/Lexer.java
@@ -469,7 +469,6 @@ public class Lexer
                     case 29:
                         {
                             @SuppressWarnings("hiding") Token token = new29(
-                                getText(accept_length),
                                 start_line + 1,
                                 start_pos + 1);
                             pushBack(accept_length);
@@ -490,6 +489,7 @@ public class Lexer
                     case 31:
                         {
                             @SuppressWarnings("hiding") Token token = new31(
+                                getText(accept_length),
                                 start_line + 1,
                                 start_pos + 1);
                             pushBack(accept_length);
@@ -500,6 +500,26 @@ public class Lexer
                     case 32:
                         {
                             @SuppressWarnings("hiding") Token token = new32(
+                                start_line + 1,
+                                start_pos + 1);
+                            pushBack(accept_length);
+                            this.pos = accept_pos;
+                            this.line = accept_line;
+                            return token;
+                        }
+                    case 33:
+                        {
+                            @SuppressWarnings("hiding") Token token = new33(
+                                start_line + 1,
+                                start_pos + 1);
+                            pushBack(accept_length);
+                            this.pos = accept_pos;
+                            this.line = accept_line;
+                            return token;
+                        }
+                    case 34:
+                        {
+                            @SuppressWarnings("hiding") Token token = new34(
                                 getText(accept_length),
                                 start_line + 1,
                                 start_pos + 1);
@@ -542,26 +562,28 @@ public class Lexer
     Token new10(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TFois(line, pos); }
     Token new11(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDiviser(line, pos); }
     Token new12(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNon(line, pos); }
-    Token new13(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TGparenthese(line, pos); }
-    Token new14(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDparenthese(line, pos); }
-    Token new15(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAccoladeg(line, pos); }
-    Token new16(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAccoladed(line, pos); }
-    Token new17(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCrochetg(line, pos); }
-    Token new18(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCrochetd(line, pos); }
-    Token new19(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBool(line, pos); }
-    Token new20(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEntier(line, pos); }
-    Token new21(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSi(line, pos); }
-    Token new22(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAlors(line, pos); }
-    Token new23(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TTantque(line, pos); }
-    Token new24(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TFaire(line, pos); }
-    Token new25(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSinon(line, pos); }
-    Token new26(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRetourner(line, pos); }
-    Token new27(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLire(line, pos); }
-    Token new28(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEcrire(line, pos); }
-    Token new29(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNombre(text, line, pos); }
-    Token new30(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TVrai(line, pos); }
-    Token new31(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TFaux(line, pos); }
-    Token new32(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TId(text, line, pos); }
+    Token new13(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TModulo(line, pos); }
+    Token new14(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPlusegale(line, pos); }
+    Token new15(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TGparenthese(line, pos); }
+    Token new16(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDparenthese(line, pos); }
+    Token new17(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAccoladeg(line, pos); }
+    Token new18(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAccoladed(line, pos); }
+    Token new19(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCrochetg(line, pos); }
+    Token new20(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCrochetd(line, pos); }
+    Token new21(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBool(line, pos); }
+    Token new22(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEntier(line, pos); }
+    Token new23(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSi(line, pos); }
+    Token new24(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAlors(line, pos); }
+    Token new25(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TTantque(line, pos); }
+    Token new26(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TFaire(line, pos); }
+    Token new27(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSinon(line, pos); }
+    Token new28(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TRetourner(line, pos); }
+    Token new29(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLire(line, pos); }
+    Token new30(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEcrire(line, pos); }
+    Token new31(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNombre(text, line, pos); }
+    Token new32(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TVrai(line, pos); }
+    Token new33(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TFaux(line, pos); }
+    Token new34(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TId(text, line, pos); }
 
     private int getChar() throws IOException
     {
@@ -621,87 +643,89 @@ public class Lexer
     private static int[][][][] gotoTable;
 /*  {
         { // INITIAL
-            {{10, 10, 1}, {13, 13, 2}, {32, 32, 3}, {33, 33, 4}, {35, 35, 5}, {36, 36, 6}, {38, 38, 7}, {40, 40, 8}, {41, 41, 9}, {42, 42, 10}, {43, 43, 11}, {44, 44, 12}, {45, 45, 13}, {47, 47, 14}, {48, 57, 15}, {59, 59, 16}, {60, 60, 17}, {61, 61, 18}, {65, 90, 6}, {91, 91, 19}, {93, 93, 20}, {95, 95, 6}, {97, 97, 21}, {98, 98, 22}, {99, 100, 6}, {101, 101, 23}, {102, 102, 24}, {103, 107, 6}, {108, 108, 25}, {109, 113, 6}, {114, 114, 26}, {115, 115, 27}, {116, 116, 28}, {117, 117, 6}, {118, 118, 29}, {119, 122, 6}, {123, 123, 30}, {124, 124, 31}, {125, 125, 32}, },
+            {{10, 10, 1}, {13, 13, 2}, {32, 32, 3}, {33, 33, 4}, {35, 35, 5}, {36, 36, 6}, {37, 37, 7}, {38, 38, 8}, {40, 40, 9}, {41, 41, 10}, {42, 42, 11}, {43, 43, 12}, {44, 44, 13}, {45, 45, 14}, {47, 47, 15}, {48, 57, 16}, {59, 59, 17}, {60, 60, 18}, {61, 61, 19}, {65, 90, 6}, {91, 91, 20}, {93, 93, 21}, {95, 95, 6}, {97, 97, 22}, {98, 98, 23}, {99, 100, 6}, {101, 101, 24}, {102, 102, 25}, {103, 107, 6}, {108, 108, 26}, {109, 113, 6}, {114, 114, 27}, {115, 115, 28}, {116, 116, 29}, {117, 117, 6}, {118, 118, 30}, {119, 122, 6}, {123, 123, 31}, {124, 124, 32}, {125, 125, 33}, },
             {{10, 32, -2}, },
             {{10, 32, -2}, },
             {{10, 32, -2}, },
             {},
-            {{0, 9, 33}, {10, 10, 34}, {11, 12, 33}, {13, 13, 35}, {14, 65535, 33}, },
-            {{36, 36, 36}, {48, 57, 36}, {65, 90, 36}, {95, 95, 36}, {97, 122, 36}, },
+            {{0, 9, 34}, {10, 10, 35}, {11, 12, 34}, {13, 13, 36}, {14, 65535, 34}, },
+            {{36, 36, 37}, {48, 57, 37}, {65, 90, 37}, {95, 95, 37}, {97, 122, 37}, },
             {},
             {},
             {},
             {},
             {},
+            {{61, 61, 38}, },
             {},
             {},
             {},
-            {{48, 57, 15}, },
+            {{48, 57, 16}, },
             {},
             {},
             {},
             {},
             {},
-            {{36, 95, -8}, {97, 107, 36}, {108, 108, 37}, {109, 122, 36}, },
-            {{36, 95, -8}, {97, 110, 36}, {111, 111, 38}, {112, 122, 36}, },
-            {{36, 95, -8}, {97, 98, 36}, {99, 99, 39}, {100, 109, 36}, {110, 110, 40}, {111, 122, 36}, },
-            {{36, 95, -8}, {97, 97, 41}, {98, 122, 36}, },
-            {{36, 95, -8}, {97, 104, 36}, {105, 105, 42}, {106, 122, 36}, },
-            {{36, 95, -8}, {97, 100, 36}, {101, 101, 43}, {102, 122, 36}, },
-            {{36, 104, -27}, {105, 105, 44}, {106, 122, 36}, },
-            {{36, 95, -8}, {97, 97, 45}, {98, 122, 36}, },
-            {{36, 95, -8}, {97, 113, 36}, {114, 114, 46}, {115, 122, 36}, },
+            {{36, 95, -8}, {97, 107, 37}, {108, 108, 39}, {109, 122, 37}, },
+            {{36, 95, -8}, {97, 110, 37}, {111, 111, 40}, {112, 122, 37}, },
+            {{36, 95, -8}, {97, 98, 37}, {99, 99, 41}, {100, 109, 37}, {110, 110, 42}, {111, 122, 37}, },
+            {{36, 95, -8}, {97, 97, 43}, {98, 122, 37}, },
+            {{36, 95, -8}, {97, 104, 37}, {105, 105, 44}, {106, 122, 37}, },
+            {{36, 95, -8}, {97, 100, 37}, {101, 101, 45}, {102, 122, 37}, },
+            {{36, 104, -28}, {105, 105, 46}, {106, 122, 37}, },
+            {{36, 95, -8}, {97, 97, 47}, {98, 122, 37}, },
+            {{36, 95, -8}, {97, 113, 37}, {114, 114, 48}, {115, 122, 37}, },
             {},
             {},
             {},
             {{0, 65535, -7}, },
-            {{13, 13, 47}, },
+            {{13, 13, 49}, },
             {},
             {{36, 122, -8}, },
-            {{36, 110, -24}, {111, 111, 48}, {112, 122, 36}, },
-            {{36, 110, -24}, {111, 111, 49}, {112, 122, 36}, },
-            {{36, 113, -31}, {114, 114, 50}, {115, 122, 36}, },
-            {{36, 95, -8}, {97, 115, 36}, {116, 116, 51}, {117, 122, 36}, },
-            {{36, 104, -27}, {105, 105, 52}, {106, 116, 36}, {117, 117, 53}, {118, 122, 36}, },
-            {{36, 113, -31}, {114, 114, 54}, {115, 122, 36}, },
-            {{36, 115, -42}, {116, 116, 55}, {117, 122, 36}, },
-            {{36, 95, -8}, {97, 109, 36}, {110, 110, 56}, {111, 122, 36}, },
-            {{36, 109, -46}, {110, 110, 57}, {111, 122, 36}, },
-            {{36, 95, -8}, {97, 97, 58}, {98, 122, 36}, },
             {},
-            {{36, 113, -31}, {114, 114, 59}, {115, 122, 36}, },
-            {{36, 107, -23}, {108, 108, 60}, {109, 122, 36}, },
-            {{36, 104, -27}, {105, 105, 61}, {106, 122, 36}, },
-            {{36, 104, -27}, {105, 105, 62}, {106, 122, 36}, },
-            {{36, 113, -31}, {114, 114, 63}, {115, 122, 36}, },
-            {{36, 95, -8}, {97, 119, 36}, {120, 120, 64}, {121, 122, 36}, },
-            {{36, 100, -28}, {101, 101, 65}, {102, 122, 36}, },
-            {{36, 110, -24}, {111, 111, 66}, {112, 122, 36}, },
-            {{36, 110, -24}, {111, 111, 67}, {112, 122, 36}, },
-            {{36, 115, -42}, {116, 116, 68}, {117, 122, 36}, },
-            {{36, 104, -27}, {105, 105, 69}, {106, 122, 36}, },
-            {{36, 95, -8}, {97, 114, 36}, {115, 115, 70}, {116, 122, 36}, },
+            {{36, 110, -25}, {111, 111, 50}, {112, 122, 37}, },
+            {{36, 110, -25}, {111, 111, 51}, {112, 122, 37}, },
+            {{36, 113, -32}, {114, 114, 52}, {115, 122, 37}, },
+            {{36, 95, -8}, {97, 115, 37}, {116, 116, 53}, {117, 122, 37}, },
+            {{36, 104, -28}, {105, 105, 54}, {106, 116, 37}, {117, 117, 55}, {118, 122, 37}, },
+            {{36, 113, -32}, {114, 114, 56}, {115, 122, 37}, },
+            {{36, 115, -44}, {116, 116, 57}, {117, 122, 37}, },
+            {{36, 95, -8}, {97, 109, 37}, {110, 110, 58}, {111, 122, 37}, },
+            {{36, 109, -48}, {110, 110, 59}, {111, 122, 37}, },
+            {{36, 95, -8}, {97, 97, 60}, {98, 122, 37}, },
+            {},
+            {{36, 113, -32}, {114, 114, 61}, {115, 122, 37}, },
+            {{36, 107, -24}, {108, 108, 62}, {109, 122, 37}, },
+            {{36, 104, -28}, {105, 105, 63}, {106, 122, 37}, },
+            {{36, 104, -28}, {105, 105, 64}, {106, 122, 37}, },
+            {{36, 113, -32}, {114, 114, 65}, {115, 122, 37}, },
+            {{36, 95, -8}, {97, 119, 37}, {120, 120, 66}, {121, 122, 37}, },
+            {{36, 100, -29}, {101, 101, 67}, {102, 122, 37}, },
+            {{36, 110, -25}, {111, 111, 68}, {112, 122, 37}, },
+            {{36, 110, -25}, {111, 111, 69}, {112, 122, 37}, },
+            {{36, 115, -44}, {116, 116, 70}, {117, 122, 37}, },
+            {{36, 104, -28}, {105, 105, 71}, {106, 122, 37}, },
+            {{36, 95, -8}, {97, 114, 37}, {115, 115, 72}, {116, 122, 37}, },
             {{36, 122, -8}, },
-            {{36, 113, -31}, {114, 114, 71}, {115, 122, 36}, },
-            {{36, 100, -28}, {101, 101, 72}, {102, 122, 36}, },
-            {{36, 100, -28}, {101, 101, 73}, {102, 122, 36}, },
+            {{36, 113, -32}, {114, 114, 73}, {115, 122, 37}, },
+            {{36, 100, -29}, {101, 101, 74}, {102, 122, 37}, },
+            {{36, 100, -29}, {101, 101, 75}, {102, 122, 37}, },
             {{36, 122, -8}, },
             {{36, 122, -8}, },
-            {{36, 95, -8}, {97, 116, 36}, {117, 117, 74}, {118, 122, 36}, },
-            {{36, 109, -46}, {110, 110, 75}, {111, 122, 36}, },
-            {{36, 95, -8}, {97, 112, 36}, {113, 113, 76}, {114, 122, 36}, },
+            {{36, 95, -8}, {97, 116, 37}, {117, 117, 76}, {118, 122, 37}, },
+            {{36, 109, -48}, {110, 110, 77}, {111, 122, 37}, },
+            {{36, 95, -8}, {97, 112, 37}, {113, 113, 78}, {114, 122, 37}, },
             {{36, 122, -8}, },
             {{36, 122, -8}, },
-            {{36, 100, -28}, {101, 101, 77}, {102, 122, 36}, },
-            {{36, 113, -31}, {114, 114, 78}, {115, 122, 36}, },
+            {{36, 100, -29}, {101, 101, 79}, {102, 122, 37}, },
+            {{36, 113, -32}, {114, 114, 80}, {115, 122, 37}, },
             {{36, 122, -8}, },
-            {{36, 113, -31}, {114, 114, 79}, {115, 122, 36}, },
+            {{36, 113, -32}, {114, 114, 81}, {115, 122, 37}, },
             {{36, 122, -8}, },
-            {{36, 116, -68}, {117, 117, 80}, {118, 122, 36}, },
+            {{36, 116, -70}, {117, 117, 82}, {118, 122, 37}, },
             {{36, 122, -8}, },
             {{36, 122, -8}, },
             {{36, 122, -8}, },
-            {{36, 100, -28}, {101, 101, 81}, {102, 122, 36}, },
+            {{36, 100, -29}, {101, 101, 83}, {102, 122, 37}, },
             {{36, 122, -8}, },
         }
     };*/
@@ -709,7 +733,7 @@ public class Lexer
     private static int[][] accept;
 /*  {
         // INITIAL
-        {-1, 0, 0, 0, 12, -1, 32, 6, 13, 14, 10, 2, 7, 4, 11, 29, 3, 9, 8, 17, 18, 32, 32, 32, 32, 32, 32, 32, 32, 32, 15, 5, 16, -1, 1, 1, 32, 32, 32, 32, 32, 32, 32, 32, 21, 32, 32, 1, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 19, 32, 32, 32, 31, 27, 32, 32, 32, 30, 22, 32, 32, 24, 32, 25, 32, 28, 20, 26, 32, 23, },
+        {-1, 0, 0, 0, 12, -1, 34, 13, 6, 15, 16, 10, 2, 7, 4, 11, 31, 3, 9, 8, 19, 20, 34, 34, 34, 34, 34, 34, 34, 34, 34, 17, 5, 18, -1, 1, 1, 34, 14, 34, 34, 34, 34, 34, 34, 34, 23, 34, 34, 1, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 21, 34, 34, 34, 33, 29, 34, 34, 34, 32, 24, 34, 34, 26, 34, 27, 34, 30, 22, 28, 34, 25, },
 
     };*/
 
diff --git a/src/lParser/lexer/lexer.dat b/src/lParser/lexer/lexer.dat
index 3f7ff84477e368b889a806eb3edea9e588dbd39d..1994a0994207aaf73683e286082f19157e9b0ff9 100644
Binary files a/src/lParser/lexer/lexer.dat and b/src/lParser/lexer/lexer.dat differ
diff --git a/src/lParser/node/AAddtoAdd.java b/src/lParser/node/AAddtoAdd.java
new file mode 100644
index 0000000000000000000000000000000000000000..3bf5b3751affb1df16841707046e50d56007f7f4
--- /dev/null
+++ b/src/lParser/node/AAddtoAdd.java
@@ -0,0 +1,95 @@
+/* This file was generated by SableCC (http://www.sablecc.org/). */
+
+package lParser.node;
+
+import lParser.analysis.*;
+
+@SuppressWarnings("nls")
+public final class AAddtoAdd extends PAdd
+{
+    private PAddto _addto_;
+
+    public AAddtoAdd()
+    {
+        // Constructor
+    }
+
+    public AAddtoAdd(
+        @SuppressWarnings("hiding") PAddto _addto_)
+    {
+        // Constructor
+        setAddto(_addto_);
+
+    }
+
+    @Override
+    public Object clone()
+    {
+        return new AAddtoAdd(
+            cloneNode(this._addto_));
+    }
+
+    @Override
+    public void apply(Switch sw)
+    {
+        ((Analysis) sw).caseAAddtoAddto(this);
+    }
+
+    public PAddto getAddto()
+    {
+        return this._addto_;
+    }
+
+    public void setAddto(PAddto node)
+    {
+        if(this._addto_ != null)
+        {
+            this._addto_.parent(null);
+        }
+
+        if(node != null)
+        {
+            if(node.parent() != null)
+            {
+                node.parent().removeChild(node);
+            }
+
+            node.parent(this);
+        }
+
+        this._addto_ = node;
+    }
+
+    @Override
+    public String toString()
+    {
+        return ""
+            + toString(this._addto_);
+    }
+
+    @Override
+    void removeChild(@SuppressWarnings("unused") Node child)
+    {
+        // Remove child
+        if(this._addto_ == child)
+        {
+            this._addto_ = null;
+            return;
+        }
+
+        throw new RuntimeException("Not a child.");
+    }
+
+    @Override
+    void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild)
+    {
+        // Replace child
+        if(this._addto_ == oldChild)
+        {
+            setAddto((PAddto) newChild);
+            return;
+        }
+
+        throw new RuntimeException("Not a child.");
+    }
+}
diff --git a/src/lParser/node/AAddtoAddto.java b/src/lParser/node/AAddtoAddto.java
new file mode 100644
index 0000000000000000000000000000000000000000..c43c7a2e342db01b5ece64c74d38c815639ee8fb
--- /dev/null
+++ b/src/lParser/node/AAddtoAddto.java
@@ -0,0 +1,181 @@
+/* This file was generated by SableCC (http://www.sablecc.org/). */
+
+package lParser.node;
+
+import lParser.analysis.*;
+
+@SuppressWarnings("nls")
+public final class AAddtoAddto extends PAddto
+{
+    private PAddto _addto_;
+    private TPlusegale _plusegale_;
+    private PNeg _neg_;
+
+    public AAddtoAddto()
+    {
+        // Constructor
+    }
+
+    public AAddtoAddto(
+        @SuppressWarnings("hiding") PAddto _addto_,
+        @SuppressWarnings("hiding") TPlusegale _plusegale_,
+        @SuppressWarnings("hiding") PNeg _neg_)
+    {
+        // Constructor
+        setAddto(_addto_);
+
+        setPlusegale(_plusegale_);
+
+        setNeg(_neg_);
+
+    }
+
+    @Override
+    public Object clone()
+    {
+        return new AAddtoAddto(
+            cloneNode(this._addto_),
+            cloneNode(this._plusegale_),
+            cloneNode(this._neg_));
+    }
+
+    @Override
+    public void apply(Switch sw)
+    {
+        ((Analysis) sw).caseAAddtoAddto(this);
+    }
+
+    public PAddto getAddto()
+    {
+        return this._addto_;
+    }
+
+    public void setAddto(PAddto node)
+    {
+        if(this._addto_ != null)
+        {
+            this._addto_.parent(null);
+        }
+
+        if(node != null)
+        {
+            if(node.parent() != null)
+            {
+                node.parent().removeChild(node);
+            }
+
+            node.parent(this);
+        }
+
+        this._addto_ = node;
+    }
+
+    public TPlusegale getPlusegale()
+    {
+        return this._plusegale_;
+    }
+
+    public void setPlusegale(TPlusegale node)
+    {
+        if(this._plusegale_ != null)
+        {
+            this._plusegale_.parent(null);
+        }
+
+        if(node != null)
+        {
+            if(node.parent() != null)
+            {
+                node.parent().removeChild(node);
+            }
+
+            node.parent(this);
+        }
+
+        this._plusegale_ = node;
+    }
+
+    public PNeg getNeg()
+    {
+        return this._neg_;
+    }
+
+    public void setNeg(PNeg node)
+    {
+        if(this._neg_ != null)
+        {
+            this._neg_.parent(null);
+        }
+
+        if(node != null)
+        {
+            if(node.parent() != null)
+            {
+                node.parent().removeChild(node);
+            }
+
+            node.parent(this);
+        }
+
+        this._neg_ = node;
+    }
+
+    @Override
+    public String toString()
+    {
+        return ""
+            + toString(this._addto_)
+            + toString(this._plusegale_)
+            + toString(this._neg_);
+    }
+
+    @Override
+    void removeChild(@SuppressWarnings("unused") Node child)
+    {
+        // Remove child
+        if(this._addto_ == child)
+        {
+            this._addto_ = null;
+            return;
+        }
+
+        if(this._plusegale_ == child)
+        {
+            this._plusegale_ = null;
+            return;
+        }
+
+        if(this._neg_ == child)
+        {
+            this._neg_ = null;
+            return;
+        }
+
+        throw new RuntimeException("Not a child.");
+    }
+
+    @Override
+    void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild)
+    {
+        // Replace child
+        if(this._addto_ == oldChild)
+        {
+            setAddto((PAddto) newChild);
+            return;
+        }
+
+        if(this._plusegale_ == oldChild)
+        {
+            setPlusegale((TPlusegale) newChild);
+            return;
+        }
+
+        if(this._neg_ == oldChild)
+        {
+            setNeg((PNeg) newChild);
+            return;
+        }
+
+        throw new RuntimeException("Not a child.");
+    }
+}
diff --git a/src/lParser/node/AAddtoMult.java b/src/lParser/node/AAddtoMult.java
new file mode 100644
index 0000000000000000000000000000000000000000..178df79369c8bf7e64b4435a5433b333444f86e5
--- /dev/null
+++ b/src/lParser/node/AAddtoMult.java
@@ -0,0 +1,95 @@
+/* This file was generated by SableCC (http://www.sablecc.org/). */
+
+package lParser.node;
+
+import lParser.analysis.*;
+
+@SuppressWarnings("nls")
+public final class AAddtoMult extends PMult
+{
+    private PAddto _addto_;
+
+    public AAddtoMult()
+    {
+        // Constructor
+    }
+
+    public AAddtoMult(
+        @SuppressWarnings("hiding") PAddto _addto_)
+    {
+        // Constructor
+        setAddto(_addto_);
+
+    }
+
+    @Override
+    public Object clone()
+    {
+        return new AAddtoMult(
+            cloneNode(this._addto_));
+    }
+
+    @Override
+    public void apply(Switch sw)
+    {
+        ((Analysis) sw).caseAAddtoMult(this);
+    }
+
+    public PAddto getAddto()
+    {
+        return this._addto_;
+    }
+
+    public void setAddto(PAddto node)
+    {
+        if(this._addto_ != null)
+        {
+            this._addto_.parent(null);
+        }
+
+        if(node != null)
+        {
+            if(node.parent() != null)
+            {
+                node.parent().removeChild(node);
+            }
+
+            node.parent(this);
+        }
+
+        this._addto_ = node;
+    }
+
+    @Override
+    public String toString()
+    {
+        return ""
+            + toString(this._addto_);
+    }
+
+    @Override
+    void removeChild(@SuppressWarnings("unused") Node child)
+    {
+        // Remove child
+        if(this._addto_ == child)
+        {
+            this._addto_ = null;
+            return;
+        }
+
+        throw new RuntimeException("Not a child.");
+    }
+
+    @Override
+    void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild)
+    {
+        // Replace child
+        if(this._addto_ == oldChild)
+        {
+            setAddto((PAddto) newChild);
+            return;
+        }
+
+        throw new RuntimeException("Not a child.");
+    }
+}
diff --git a/src/lParser/node/AMoinsAdd.java b/src/lParser/node/AMoinsAdd.java
index 27e685856388dae4f692459919d181f7d027f4ea..e39237fcdcc22d5842fc5a0336ceb34337180d86 100644
--- a/src/lParser/node/AMoinsAdd.java
+++ b/src/lParser/node/AMoinsAdd.java
@@ -9,7 +9,7 @@ public final class AMoinsAdd extends PAdd
 {
     private PAdd _add_;
     private TMoins _moins_;
-    private PMult _mult_;
+    private PMod _mod_;
 
     public AMoinsAdd()
     {
@@ -19,14 +19,14 @@ public final class AMoinsAdd extends PAdd
     public AMoinsAdd(
         @SuppressWarnings("hiding") PAdd _add_,
         @SuppressWarnings("hiding") TMoins _moins_,
-        @SuppressWarnings("hiding") PMult _mult_)
+        @SuppressWarnings("hiding") PMod _mod_)
     {
         // Constructor
         setAdd(_add_);
 
         setMoins(_moins_);
 
-        setMult(_mult_);
+        setMod(_mod_);
 
     }
 
@@ -36,7 +36,7 @@ public final class AMoinsAdd extends PAdd
         return new AMoinsAdd(
             cloneNode(this._add_),
             cloneNode(this._moins_),
-            cloneNode(this._mult_));
+            cloneNode(this._mod_));
     }
 
     @Override
@@ -95,16 +95,16 @@ public final class AMoinsAdd extends PAdd
         this._moins_ = node;
     }
 
-    public PMult getMult()
+    public PMod getMod()
     {
-        return this._mult_;
+        return this._mod_;
     }
 
-    public void setMult(PMult node)
+    public void setMod(PMod node)
     {
-        if(this._mult_ != null)
+        if(this._mod_ != null)
         {
-            this._mult_.parent(null);
+            this._mod_.parent(null);
         }
 
         if(node != null)
@@ -117,7 +117,7 @@ public final class AMoinsAdd extends PAdd
             node.parent(this);
         }
 
-        this._mult_ = node;
+        this._mod_ = node;
     }
 
     @Override
@@ -126,7 +126,7 @@ public final class AMoinsAdd extends PAdd
         return ""
             + toString(this._add_)
             + toString(this._moins_)
-            + toString(this._mult_);
+            + toString(this._mod_);
     }
 
     @Override
@@ -145,9 +145,9 @@ public final class AMoinsAdd extends PAdd
             return;
         }
 
-        if(this._mult_ == child)
+        if(this._mod_ == child)
         {
-            this._mult_ = null;
+            this._mod_ = null;
             return;
         }
 
@@ -170,9 +170,9 @@ public final class AMoinsAdd extends PAdd
             return;
         }
 
-        if(this._mult_ == oldChild)
+        if(this._mod_ == oldChild)
         {
-            setMult((PMult) newChild);
+            setMod((PMod) newChild);
             return;
         }
 
diff --git a/src/lParser/node/ANegMult.java b/src/lParser/node/ANegAddto.java
similarity index 90%
rename from src/lParser/node/ANegMult.java
rename to src/lParser/node/ANegAddto.java
index dbcc3c2b398d03efc82b6a7fb43aa0eaa33fc0a1..2c37482575b4f7bde58a5e6052f53acee8b613ea 100644
--- a/src/lParser/node/ANegMult.java
+++ b/src/lParser/node/ANegAddto.java
@@ -5,16 +5,16 @@ package lParser.node;
 import lParser.analysis.*;
 
 @SuppressWarnings("nls")
-public final class ANegMult extends PMult
+public final class ANegAddto extends PAddto
 {
     private PNeg _neg_;
 
-    public ANegMult()
+    public ANegAddto()
     {
         // Constructor
     }
 
-    public ANegMult(
+    public ANegAddto(
         @SuppressWarnings("hiding") PNeg _neg_)
     {
         // Constructor
@@ -25,14 +25,14 @@ public final class ANegMult extends PMult
     @Override
     public Object clone()
     {
-        return new ANegMult(
+        return new ANegAddto(
             cloneNode(this._neg_));
     }
 
     @Override
     public void apply(Switch sw)
     {
-        ((Analysis) sw).caseANegMult(this);
+        ((Analysis) sw).caseANegAddto(this);
     }
 
     public PNeg getNeg()
diff --git a/src/lParser/node/APlusAdd.java b/src/lParser/node/APlusAdd.java
index bd1386be3941b2379138bb476e2f59e1f20cd691..8c87c2f0d6ee32f21d3734eaa0ad0142d3e1315d 100644
--- a/src/lParser/node/APlusAdd.java
+++ b/src/lParser/node/APlusAdd.java
@@ -9,7 +9,7 @@ public final class APlusAdd extends PAdd
 {
     private PAdd _add_;
     private TPlus _plus_;
-    private PMult _mult_;
+    private PMod _mod_;
 
     public APlusAdd()
     {
@@ -19,14 +19,14 @@ public final class APlusAdd extends PAdd
     public APlusAdd(
         @SuppressWarnings("hiding") PAdd _add_,
         @SuppressWarnings("hiding") TPlus _plus_,
-        @SuppressWarnings("hiding") PMult _mult_)
+        @SuppressWarnings("hiding") PMod _mod_)
     {
         // Constructor
         setAdd(_add_);
 
         setPlus(_plus_);
 
-        setMult(_mult_);
+        setMod(_mod_);
 
     }
 
@@ -36,7 +36,7 @@ public final class APlusAdd extends PAdd
         return new APlusAdd(
             cloneNode(this._add_),
             cloneNode(this._plus_),
-            cloneNode(this._mult_));
+            cloneNode(this._mod_));
     }
 
     @Override
@@ -95,16 +95,16 @@ public final class APlusAdd extends PAdd
         this._plus_ = node;
     }
 
-    public PMult getMult()
+    public PMod getMod()
     {
-        return this._mult_;
+        return this._mod_;
     }
 
-    public void setMult(PMult node)
+    public void setMod(PMod node)
     {
-        if(this._mult_ != null)
+        if(this._mod_ != null)
         {
-            this._mult_.parent(null);
+            this._mod_.parent(null);
         }
 
         if(node != null)
@@ -117,7 +117,7 @@ public final class APlusAdd extends PAdd
             node.parent(this);
         }
 
-        this._mult_ = node;
+        this._mod_ = node;
     }
 
     @Override
@@ -126,7 +126,7 @@ public final class APlusAdd extends PAdd
         return ""
             + toString(this._add_)
             + toString(this._plus_)
-            + toString(this._mult_);
+            + toString(this._mod_);
     }
 
     @Override
@@ -145,9 +145,9 @@ public final class APlusAdd extends PAdd
             return;
         }
 
-        if(this._mult_ == child)
+        if(this._mod_ == child)
         {
-            this._mult_ = null;
+            this._mod_ = null;
             return;
         }
 
@@ -170,9 +170,9 @@ public final class APlusAdd extends PAdd
             return;
         }
 
-        if(this._mult_ == oldChild)
+        if(this._mod_ == oldChild)
         {
-            setMult((PMult) newChild);
+            setMod((PMod) newChild);
             return;
         }
 
diff --git a/src/lParser/node/PAddto.java b/src/lParser/node/PAddto.java
new file mode 100644
index 0000000000000000000000000000000000000000..7170eed58c9bf32a8659bd146571cc652a4afcff
--- /dev/null
+++ b/src/lParser/node/PAddto.java
@@ -0,0 +1,8 @@
+/* This file was generated by SableCC (http://www.sablecc.org/). */
+
+package lParser.node;
+
+public abstract class PAddto extends Node
+{
+    // Empty body
+}
diff --git a/src/lParser/node/TPlusegale.java b/src/lParser/node/TPlusegale.java
new file mode 100644
index 0000000000000000000000000000000000000000..7fc0e867ea1c85a5b5c86d0ee0c61821701fc32b
--- /dev/null
+++ b/src/lParser/node/TPlusegale.java
@@ -0,0 +1,39 @@
+/* This file was generated by SableCC (http://www.sablecc.org/). */
+
+package lParser.node;
+
+import lParser.analysis.*;
+
+@SuppressWarnings("nls")
+public final class TPlusegale extends Token
+{
+    public TPlusegale()
+    {
+        super.setText("+=");
+    }
+
+    public TPlusegale(int line, int pos)
+    {
+        super.setText("+=");
+        setLine(line);
+        setPos(pos);
+    }
+
+    @Override
+    public Object clone()
+    {
+      return new TPlusegale(getLine(), getPos());
+    }
+
+    @Override
+    public void apply(Switch sw)
+    {
+        ((Analysis) sw).caseTPlusegale(this);
+    }
+
+    @Override
+    public void setText(@SuppressWarnings("unused") String text)
+    {
+        throw new RuntimeException("Cannot change TPlusegale text.");
+    }
+}
diff --git a/src/lParser/parser/Parser.java b/src/lParser/parser/Parser.java
index 88d8ac509606caf293ffd542416c7270fd1a23a6..5349d46af4d146f720e0168bf2e66aa366d62e7a 100644
--- a/src/lParser/parser/Parser.java
+++ b/src/lParser/parser/Parser.java
@@ -255,276 +255,300 @@ public class Parser
                 push(goTo(4), list);
             }
             break;
-            case 11: /* reduce AMultAdd */
+            case 11: /* reduce AModAdd */
             {
                 ArrayList<Object> list = new11();
                 push(goTo(4), list);
             }
             break;
-            case 12: /* reduce AFoisMult */
+            case 12: /* reduce AModMod */
             {
                 ArrayList<Object> list = new12();
                 push(goTo(5), list);
             }
             break;
-            case 13: /* reduce ADiviserMult */
+            case 13: /* reduce AMultMod */
             {
                 ArrayList<Object> list = new13();
                 push(goTo(5), list);
             }
             break;
-            case 14: /* reduce ANegMult */
+            case 14: /* reduce AFoisMult */
             {
                 ArrayList<Object> list = new14();
-                push(goTo(5), list);
+                push(goTo(6), list);
             }
             break;
-            case 15: /* reduce ANonNeg */
+            case 15: /* reduce ADiviserMult */
             {
                 ArrayList<Object> list = new15();
                 push(goTo(6), list);
             }
             break;
-            case 16: /* reduce AE6Neg */
+            case 16: /* reduce AAddtoMult */
             {
                 ArrayList<Object> list = new16();
                 push(goTo(6), list);
             }
             break;
-            case 17: /* reduce AParentheseE6 */
+            case 17: /* reduce AAddtoAddto */
             {
                 ArrayList<Object> list = new17();
                 push(goTo(7), list);
             }
             break;
-            case 18: /* reduce ANombreE6 */
+            case 18: /* reduce ANegAddto */
             {
                 ArrayList<Object> list = new18();
                 push(goTo(7), list);
             }
             break;
-            case 19: /* reduce AVraiE6 */
+            case 19: /* reduce ANonNeg */
             {
                 ArrayList<Object> list = new19();
-                push(goTo(7), list);
+                push(goTo(8), list);
             }
             break;
-            case 20: /* reduce AFauxE6 */
+            case 20: /* reduce AE6Neg */
             {
                 ArrayList<Object> list = new20();
-                push(goTo(7), list);
+                push(goTo(8), list);
             }
             break;
-            case 21: /* reduce ALireE6 */
+            case 21: /* reduce AParentheseE6 */
             {
                 ArrayList<Object> list = new21();
-                push(goTo(7), list);
+                push(goTo(9), list);
             }
             break;
-            case 22: /* reduce AVarE6 */
+            case 22: /* reduce ANombreE6 */
             {
                 ArrayList<Object> list = new22();
-                push(goTo(7), list);
+                push(goTo(9), list);
             }
             break;
-            case 23: /* reduce AAppelfncE6 */
+            case 23: /* reduce AVraiE6 */
             {
                 ArrayList<Object> list = new23();
-                push(goTo(7), list);
+                push(goTo(9), list);
             }
             break;
-            case 24: /* reduce AAffectationIns */
+            case 24: /* reduce AFauxE6 */
             {
                 ArrayList<Object> list = new24();
-                push(goTo(8), list);
+                push(goTo(9), list);
             }
             break;
-            case 25: /* reduce ATqIns */
+            case 25: /* reduce ALireE6 */
             {
                 ArrayList<Object> list = new25();
-                push(goTo(8), list);
+                push(goTo(9), list);
             }
             break;
-            case 26: /* reduce ASiIns */
+            case 26: /* reduce AVarE6 */
             {
                 ArrayList<Object> list = new26();
-                push(goTo(8), list);
+                push(goTo(9), list);
             }
             break;
-            case 27: /* reduce ASisinonIns */
+            case 27: /* reduce AAppelfncE6 */
             {
                 ArrayList<Object> list = new27();
-                push(goTo(8), list);
+                push(goTo(9), list);
             }
             break;
-            case 28: /* reduce AReturnIns */
+            case 28: /* reduce AAffectationIns */
             {
                 ArrayList<Object> list = new28();
-                push(goTo(8), list);
+                push(goTo(10), list);
             }
             break;
-            case 29: /* reduce AWriteIns */
+            case 29: /* reduce ATqIns */
             {
                 ArrayList<Object> list = new29();
-                push(goTo(8), list);
+                push(goTo(10), list);
             }
             break;
-            case 30: /* reduce AAppelfncIns */
+            case 30: /* reduce ASiIns */
             {
                 ArrayList<Object> list = new30();
-                push(goTo(8), list);
+                push(goTo(10), list);
             }
             break;
-            case 31: /* reduce AInstrBloc */
+            case 31: /* reduce ASisinonIns */
             {
                 ArrayList<Object> list = new31();
-                push(goTo(9), list);
+                push(goTo(10), list);
             }
             break;
-            case 32: /* reduce AListeinstrLi */
+            case 32: /* reduce AReturnIns */
             {
                 ArrayList<Object> list = new32();
                 push(goTo(10), list);
             }
             break;
-            case 33: /* reduce AEpsilon$1Li */
+            case 33: /* reduce AWriteIns */
             {
                 ArrayList<Object> list = new33();
                 push(goTo(10), list);
             }
             break;
-            case 34: /* reduce AExprLe */
+            case 34: /* reduce AAppelfncIns */
             {
                 ArrayList<Object> list = new34();
-                push(goTo(11), list);
+                push(goTo(10), list);
             }
             break;
-            case 35: /* reduce AEpsilon$1Le */
+            case 35: /* reduce AInstrBloc */
             {
                 ArrayList<Object> list = new35();
                 push(goTo(11), list);
             }
             break;
-            case 36: /* reduce ALstexprLse */
+            case 36: /* reduce AListeinstrLi */
             {
                 ArrayList<Object> list = new36();
                 push(goTo(12), list);
             }
             break;
-            case 37: /* reduce AEpsilon$1Lse */
+            case 37: /* reduce AEpsilon$1Li */
             {
                 ArrayList<Object> list = new37();
                 push(goTo(12), list);
             }
             break;
-            case 38: /* reduce AIdVar */
+            case 38: /* reduce AExprLe */
             {
                 ArrayList<Object> list = new38();
                 push(goTo(13), list);
             }
             break;
-            case 39: /* reduce AIdCrochetVar */
+            case 39: /* reduce AEpsilon$1Le */
             {
                 ArrayList<Object> list = new39();
                 push(goTo(13), list);
             }
             break;
-            case 40: /* reduce ADeclavariableDecvar */
+            case 40: /* reduce ALstexprLse */
             {
                 ArrayList<Object> list = new40();
                 push(goTo(14), list);
             }
             break;
-            case 41: /* reduce ADecvar */
+            case 41: /* reduce AEpsilon$1Lse */
             {
                 ArrayList<Object> list = new41();
                 push(goTo(14), list);
             }
             break;
-            case 42: /* reduce ATypeType */
+            case 42: /* reduce AIdVar */
             {
                 ArrayList<Object> list = new42();
                 push(goTo(15), list);
             }
             break;
-            case 43: /* reduce AType */
+            case 43: /* reduce AIdCrochetVar */
             {
                 ArrayList<Object> list = new43();
                 push(goTo(15), list);
             }
             break;
-            case 44: /* reduce ADeclafonc$Lstdeclacvar1$Lstdeclacvar2$Typeopt1Decfonc */
+            case 44: /* reduce ADeclavariableDecvar */
             {
                 ArrayList<Object> list = new44();
                 push(goTo(16), list);
             }
             break;
-            case 45: /* reduce ADeclafonc$Lstdeclacvar1$Lstdeclacvar2$11Decfonc */
+            case 45: /* reduce ADecvar */
             {
                 ArrayList<Object> list = new45();
                 push(goTo(16), list);
             }
             break;
-            case 46: /* reduce ADeclafonc$Lstdeclacvar1$12$Typeopt1Decfonc */
+            case 46: /* reduce ATypeType */
             {
                 ArrayList<Object> list = new46();
-                push(goTo(16), list);
+                push(goTo(17), list);
             }
             break;
-            case 47: /* reduce ADeclafonc$Lstdeclacvar1$12$11Decfonc */
+            case 47: /* reduce AType */
             {
                 ArrayList<Object> list = new47();
-                push(goTo(16), list);
+                push(goTo(17), list);
             }
             break;
-            case 48: /* reduce ADeclafonc$11$Lstdeclacvar2$Typeopt1Decfonc */
+            case 48: /* reduce ADeclafonc$Lstdeclacvar1$Lstdeclacvar2$Typeopt1Decfonc */
             {
                 ArrayList<Object> list = new48();
-                push(goTo(16), list);
+                push(goTo(18), list);
             }
             break;
-            case 49: /* reduce ADeclafonc$11$Lstdeclacvar2$11Decfonc */
+            case 49: /* reduce ADeclafonc$Lstdeclacvar1$Lstdeclacvar2$11Decfonc */
             {
                 ArrayList<Object> list = new49();
-                push(goTo(16), list);
+                push(goTo(18), list);
             }
             break;
-            case 50: /* reduce ADeclafonc$11$12$Typeopt1Decfonc */
+            case 50: /* reduce ADeclafonc$Lstdeclacvar1$12$Typeopt1Decfonc */
             {
                 ArrayList<Object> list = new50();
-                push(goTo(16), list);
+                push(goTo(18), list);
             }
             break;
-            case 51: /* reduce ADeclafonc$11$12$11Decfonc */
+            case 51: /* reduce ADeclafonc$Lstdeclacvar1$12$11Decfonc */
             {
                 ArrayList<Object> list = new51();
-                push(goTo(16), list);
+                push(goTo(18), list);
             }
             break;
-            case 52: /* reduce ASuitedeclvarSuitedec */
+            case 52: /* reduce ADeclafonc$11$Lstdeclacvar2$Typeopt1Decfonc */
             {
                 ArrayList<Object> list = new52();
-                push(goTo(17), list);
+                push(goTo(18), list);
             }
             break;
-            case 53: /* reduce A1Suitedec */
+            case 53: /* reduce ADeclafonc$11$Lstdeclacvar2$11Decfonc */
             {
                 ArrayList<Object> list = new53();
-                push(goTo(17), list);
+                push(goTo(18), list);
             }
             break;
-            case 54: /* reduce ALstdecfncLdf */
+            case 54: /* reduce ADeclafonc$11$12$Typeopt1Decfonc */
             {
                 ArrayList<Object> list = new54();
                 push(goTo(18), list);
             }
             break;
-            case 55: /* reduce A1Ldf */
+            case 55: /* reduce ADeclafonc$11$12$11Decfonc */
             {
                 ArrayList<Object> list = new55();
                 push(goTo(18), list);
             }
             break;
+            case 56: /* reduce ASuitedeclvarSuitedec */
+            {
+                ArrayList<Object> list = new56();
+                push(goTo(19), list);
+            }
+            break;
+            case 57: /* reduce A1Suitedec */
+            {
+                ArrayList<Object> list = new57();
+                push(goTo(19), list);
+            }
+            break;
+            case 58: /* reduce ALstdecfncLdf */
+            {
+                ArrayList<Object> list = new58();
+                push(goTo(20), list);
+            }
+            break;
+            case 59: /* reduce A1Ldf */
+            {
+                ArrayList<Object> list = new59();
+                push(goTo(20), list);
+            }
+            break;
         }
     }
 
@@ -771,12 +795,12 @@ public class Parser
             // Block
         PAdd paddNode2;
         TPlus tplusNode3;
-        PMult pmultNode4;
+        PMod pmodNode4;
         paddNode2 = (PAdd)nodeArrayList1.get(0);
         tplusNode3 = (TPlus)nodeArrayList2.get(0);
-        pmultNode4 = (PMult)nodeArrayList3.get(0);
+        pmodNode4 = (PMod)nodeArrayList3.get(0);
 
-        paddNode1 = new APlusAdd(paddNode2, tplusNode3, pmultNode4);
+        paddNode1 = new APlusAdd(paddNode2, tplusNode3, pmodNode4);
         }
 	nodeList.add(paddNode1);
         return nodeList;
@@ -797,12 +821,12 @@ public class Parser
             // Block
         PAdd paddNode2;
         TMoins tmoinsNode3;
-        PMult pmultNode4;
+        PMod pmodNode4;
         paddNode2 = (PAdd)nodeArrayList1.get(0);
         tmoinsNode3 = (TMoins)nodeArrayList2.get(0);
-        pmultNode4 = (PMult)nodeArrayList3.get(0);
+        pmodNode4 = (PMod)nodeArrayList3.get(0);
 
-        paddNode1 = new AMoinsAdd(paddNode2, tmoinsNode3, pmultNode4);
+        paddNode1 = new AMoinsAdd(paddNode2, tmoinsNode3, pmodNode4);
         }
 	nodeList.add(paddNode1);
         return nodeList;
@@ -811,27 +835,73 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new11() /* reduce AMultAdd */
+    ArrayList<Object> new11() /* reduce AModAdd */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
         @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
         PAdd paddNode1;
+        {
+            // Block
+        PMod pmodNode2;
+        pmodNode2 = (PMod)nodeArrayList1.get(0);
+
+        paddNode1 = new AModAdd(pmodNode2);
+        }
+	nodeList.add(paddNode1);
+        return nodeList;
+    }
+
+
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    ArrayList<Object> new12() /* reduce AModMod */
+    {
+        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
+
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
+        PMod pmodNode1;
+        {
+            // Block
+        PMod pmodNode2;
+        TModulo tmoduloNode3;
+        PMult pmultNode4;
+        pmodNode2 = (PMod)nodeArrayList1.get(0);
+        tmoduloNode3 = (TModulo)nodeArrayList2.get(0);
+        pmultNode4 = (PMult)nodeArrayList3.get(0);
+
+        pmodNode1 = new AModMod(pmodNode2, tmoduloNode3, pmultNode4);
+        }
+	nodeList.add(pmodNode1);
+        return nodeList;
+    }
+
+
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    ArrayList<Object> new13() /* reduce AMultMod */
+    {
+        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
+
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
+        PMod pmodNode1;
         {
             // Block
         PMult pmultNode2;
         pmultNode2 = (PMult)nodeArrayList1.get(0);
 
-        paddNode1 = new AMultAdd(pmultNode2);
+        pmodNode1 = new AMultMod(pmultNode2);
         }
-	nodeList.add(paddNode1);
+	nodeList.add(pmodNode1);
         return nodeList;
     }
 
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new12() /* reduce AFoisMult */
+    ArrayList<Object> new14() /* reduce AFoisMult */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -857,7 +927,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new13() /* reduce ADiviserMult */
+    ArrayList<Object> new15() /* reduce ADiviserMult */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -883,27 +953,73 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new14() /* reduce ANegMult */
+    ArrayList<Object> new16() /* reduce AAddtoMult */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
         @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
         PMult pmultNode1;
+        {
+            // Block
+        PAddto paddtoNode2;
+        paddtoNode2 = (PAddto)nodeArrayList1.get(0);
+
+        pmultNode1 = new AAddtoMult(paddtoNode2);
+        }
+	nodeList.add(pmultNode1);
+        return nodeList;
+    }
+
+
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    ArrayList<Object> new17() /* reduce AAddtoAddto */
+    {
+        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
+
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
+        PAddto paddtoNode1;
+        {
+            // Block
+        PAddto paddtoNode2;
+        TPlusegale tplusegaleNode3;
+        PNeg pnegNode4;
+        paddtoNode2 = (PAddto)nodeArrayList1.get(0);
+        tplusegaleNode3 = (TPlusegale)nodeArrayList2.get(0);
+        pnegNode4 = (PNeg)nodeArrayList3.get(0);
+
+        paddtoNode1 = new AAddtoAddto(paddtoNode2, tplusegaleNode3, pnegNode4);
+        }
+	nodeList.add(paddtoNode1);
+        return nodeList;
+    }
+
+
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    ArrayList<Object> new18() /* reduce ANegAddto */
+    {
+        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
+
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
+        PAddto paddtoNode1;
         {
             // Block
         PNeg pnegNode2;
         pnegNode2 = (PNeg)nodeArrayList1.get(0);
 
-        pmultNode1 = new ANegMult(pnegNode2);
+        paddtoNode1 = new ANegAddto(pnegNode2);
         }
-	nodeList.add(pmultNode1);
+	nodeList.add(paddtoNode1);
         return nodeList;
     }
 
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new15() /* reduce ANonNeg */
+    ArrayList<Object> new19() /* reduce ANonNeg */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -926,7 +1042,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new16() /* reduce AE6Neg */
+    ArrayList<Object> new20() /* reduce AE6Neg */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -946,7 +1062,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new17() /* reduce AParentheseE6 */
+    ArrayList<Object> new21() /* reduce AParentheseE6 */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -972,7 +1088,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new18() /* reduce ANombreE6 */
+    ArrayList<Object> new22() /* reduce ANombreE6 */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -992,7 +1108,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new19() /* reduce AVraiE6 */
+    ArrayList<Object> new23() /* reduce AVraiE6 */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1012,7 +1128,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new20() /* reduce AFauxE6 */
+    ArrayList<Object> new24() /* reduce AFauxE6 */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1032,7 +1148,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new21() /* reduce ALireE6 */
+    ArrayList<Object> new25() /* reduce ALireE6 */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1058,7 +1174,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new22() /* reduce AVarE6 */
+    ArrayList<Object> new26() /* reduce AVarE6 */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1078,7 +1194,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new23() /* reduce AAppelfncE6 */
+    ArrayList<Object> new27() /* reduce AAppelfncE6 */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1107,7 +1223,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new24() /* reduce AAffectationIns */
+    ArrayList<Object> new28() /* reduce AAffectationIns */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1136,7 +1252,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new25() /* reduce ATqIns */
+    ArrayList<Object> new29() /* reduce ATqIns */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1165,7 +1281,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new26() /* reduce ASiIns */
+    ArrayList<Object> new30() /* reduce ASiIns */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1194,7 +1310,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new27() /* reduce ASisinonIns */
+    ArrayList<Object> new31() /* reduce ASisinonIns */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1229,7 +1345,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new28() /* reduce AReturnIns */
+    ArrayList<Object> new32() /* reduce AReturnIns */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1255,7 +1371,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new29() /* reduce AWriteIns */
+    ArrayList<Object> new33() /* reduce AWriteIns */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1287,7 +1403,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new30() /* reduce AAppelfncIns */
+    ArrayList<Object> new34() /* reduce AAppelfncIns */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1319,7 +1435,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new31() /* reduce AInstrBloc */
+    ArrayList<Object> new35() /* reduce AInstrBloc */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1345,7 +1461,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new32() /* reduce AListeinstrLi */
+    ArrayList<Object> new36() /* reduce AListeinstrLi */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1368,7 +1484,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new33() /* reduce AEpsilon$1Li */
+    ArrayList<Object> new37() /* reduce AEpsilon$1Li */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1391,7 +1507,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new34() /* reduce AExprLe */
+    ArrayList<Object> new38() /* reduce AExprLe */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1414,7 +1530,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new35() /* reduce AEpsilon$1Le */
+    ArrayList<Object> new39() /* reduce AEpsilon$1Le */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1437,7 +1553,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new36() /* reduce ALstexprLse */
+    ArrayList<Object> new40() /* reduce ALstexprLse */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1463,7 +1579,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new37() /* reduce AEpsilon$1Lse */
+    ArrayList<Object> new41() /* reduce AEpsilon$1Lse */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1486,7 +1602,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new38() /* reduce AIdVar */
+    ArrayList<Object> new42() /* reduce AIdVar */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1506,7 +1622,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new39() /* reduce AIdCrochetVar */
+    ArrayList<Object> new43() /* reduce AIdCrochetVar */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1535,7 +1651,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new40() /* reduce ADeclavariableDecvar */
+    ArrayList<Object> new44() /* reduce ADeclavariableDecvar */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1558,7 +1674,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new41() /* reduce ADecvar */
+    ArrayList<Object> new45() /* reduce ADecvar */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1590,7 +1706,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new42() /* reduce ATypeType */
+    ArrayList<Object> new46() /* reduce ATypeType */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1610,7 +1726,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new43() /* reduce AType */
+    ArrayList<Object> new47() /* reduce AType */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1630,7 +1746,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new44() /* reduce ADeclafonc$Lstdeclacvar1$Lstdeclacvar2$Typeopt1Decfonc */
+    ArrayList<Object> new48() /* reduce ADeclafonc$Lstdeclacvar1$Lstdeclacvar2$Typeopt1Decfonc */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1692,7 +1808,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new45() /* reduce ADeclafonc$Lstdeclacvar1$Lstdeclacvar2$11Decfonc */
+    ArrayList<Object> new49() /* reduce ADeclafonc$Lstdeclacvar1$Lstdeclacvar2$11Decfonc */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1757,7 +1873,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new46() /* reduce ADeclafonc$Lstdeclacvar1$12$Typeopt1Decfonc */
+    ArrayList<Object> new50() /* reduce ADeclafonc$Lstdeclacvar1$12$Typeopt1Decfonc */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1819,7 +1935,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new47() /* reduce ADeclafonc$Lstdeclacvar1$12$11Decfonc */
+    ArrayList<Object> new51() /* reduce ADeclafonc$Lstdeclacvar1$12$11Decfonc */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1884,7 +2000,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new48() /* reduce ADeclafonc$11$Lstdeclacvar2$Typeopt1Decfonc */
+    ArrayList<Object> new52() /* reduce ADeclafonc$11$Lstdeclacvar2$Typeopt1Decfonc */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1946,7 +2062,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new49() /* reduce ADeclafonc$11$Lstdeclacvar2$11Decfonc */
+    ArrayList<Object> new53() /* reduce ADeclafonc$11$Lstdeclacvar2$11Decfonc */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -2011,7 +2127,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new50() /* reduce ADeclafonc$11$12$Typeopt1Decfonc */
+    ArrayList<Object> new54() /* reduce ADeclafonc$11$12$Typeopt1Decfonc */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -2073,7 +2189,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new51() /* reduce ADeclafonc$11$12$11Decfonc */
+    ArrayList<Object> new55() /* reduce ADeclafonc$11$12$11Decfonc */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -2138,7 +2254,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new52() /* reduce ASuitedeclvarSuitedec */
+    ArrayList<Object> new56() /* reduce ASuitedeclvarSuitedec */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -2164,7 +2280,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new53() /* reduce A1Suitedec */
+    ArrayList<Object> new57() /* reduce A1Suitedec */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -2187,7 +2303,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new54() /* reduce ALstdecfncLdf */
+    ArrayList<Object> new58() /* reduce ALstdecfncLdf */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -2210,7 +2326,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new55() /* reduce A1Ldf */
+    ArrayList<Object> new59() /* reduce A1Ldf */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -2234,154 +2350,162 @@ public class Parser
 
     private static int[][][] actionTable;
 /*      {
-			{{-1, REDUCE, 55}, {17, SHIFT, 1}, {18, SHIFT, 2}, {30, SHIFT, 3}, },
-			{{-1, REDUCE, 42}, },
-			{{-1, REDUCE, 43}, },
-			{{-1, ERROR, 3}, {11, SHIFT, 9}, },
-			{{-1, ERROR, 4}, {31, ACCEPT, -1}, },
-			{{-1, REDUCE, 53}, {5, SHIFT, 10}, },
-			{{-1, ERROR, 6}, {30, SHIFT, 12}, },
-			{{-1, REDUCE, 55}, {17, SHIFT, 1}, {18, SHIFT, 2}, {30, SHIFT, 3}, },
+			{{-1, REDUCE, 59}, {19, SHIFT, 1}, {20, SHIFT, 2}, {32, SHIFT, 3}, },
+			{{-1, REDUCE, 46}, },
+			{{-1, REDUCE, 47}, },
+			{{-1, ERROR, 3}, {13, SHIFT, 9}, },
+			{{-1, ERROR, 4}, {33, ACCEPT, -1}, },
+			{{-1, REDUCE, 57}, {5, SHIFT, 10}, },
+			{{-1, ERROR, 6}, {32, SHIFT, 12}, },
+			{{-1, REDUCE, 59}, {19, SHIFT, 1}, {20, SHIFT, 2}, {32, SHIFT, 3}, },
 			{{-1, REDUCE, 1}, },
-			{{-1, ERROR, 9}, {12, SHIFT, 15}, {17, SHIFT, 1}, {18, SHIFT, 2}, },
-			{{-1, ERROR, 10}, {17, SHIFT, 1}, {18, SHIFT, 2}, },
-			{{-1, REDUCE, 55}, {17, SHIFT, 1}, {18, SHIFT, 2}, {30, SHIFT, 3}, },
-			{{-1, REDUCE, 40}, {11, SHIFT, 20}, {15, SHIFT, 21}, },
-			{{-1, ERROR, 13}, {30, SHIFT, 22}, },
-			{{-1, REDUCE, 54}, },
-			{{-1, ERROR, 15}, {13, SHIFT, 23}, {17, SHIFT, 1}, {18, SHIFT, 2}, },
-			{{-1, REDUCE, 53}, {5, SHIFT, 10}, },
-			{{-1, ERROR, 17}, {30, SHIFT, 27}, },
-			{{-1, REDUCE, 53}, {5, SHIFT, 10}, },
+			{{-1, ERROR, 9}, {14, SHIFT, 15}, {19, SHIFT, 1}, {20, SHIFT, 2}, },
+			{{-1, ERROR, 10}, {19, SHIFT, 1}, {20, SHIFT, 2}, },
+			{{-1, REDUCE, 59}, {19, SHIFT, 1}, {20, SHIFT, 2}, {32, SHIFT, 3}, },
+			{{-1, REDUCE, 44}, {13, SHIFT, 20}, {17, SHIFT, 21}, },
+			{{-1, ERROR, 13}, {32, SHIFT, 22}, },
+			{{-1, REDUCE, 58}, },
+			{{-1, ERROR, 15}, {15, SHIFT, 23}, {19, SHIFT, 1}, {20, SHIFT, 2}, },
+			{{-1, REDUCE, 57}, {5, SHIFT, 10}, },
+			{{-1, ERROR, 17}, {32, SHIFT, 27}, },
+			{{-1, REDUCE, 57}, {5, SHIFT, 10}, },
 			{{-1, REDUCE, 0}, },
-			{{-1, ERROR, 20}, {12, SHIFT, 29}, {17, SHIFT, 1}, {18, SHIFT, 2}, },
-			{{-1, ERROR, 21}, {27, SHIFT, 31}, },
-			{{-1, ERROR, 22}, {11, SHIFT, 20}, },
-			{{-1, REDUCE, 33}, {19, SHIFT, 32}, {21, SHIFT, 33}, {24, SHIFT, 34}, {26, SHIFT, 35}, {30, SHIFT, 36}, },
+			{{-1, ERROR, 20}, {14, SHIFT, 29}, {19, SHIFT, 1}, {20, SHIFT, 2}, },
+			{{-1, ERROR, 21}, {29, SHIFT, 31}, },
+			{{-1, ERROR, 22}, {13, SHIFT, 20}, },
+			{{-1, REDUCE, 37}, {21, SHIFT, 32}, {23, SHIFT, 33}, {26, SHIFT, 34}, {28, SHIFT, 35}, {32, SHIFT, 36}, },
+			{{-1, REDUCE, 55}, },
+			{{-1, REDUCE, 57}, {5, SHIFT, 10}, },
+			{{-1, ERROR, 26}, {14, SHIFT, 41}, },
+			{{-1, REDUCE, 44}, {17, SHIFT, 21}, },
+			{{-1, REDUCE, 56}, },
+			{{-1, ERROR, 29}, {15, SHIFT, 23}, {19, SHIFT, 1}, {20, SHIFT, 2}, },
+			{{-1, REDUCE, 57}, {5, SHIFT, 10}, },
+			{{-1, ERROR, 31}, {18, SHIFT, 45}, },
+			{{-1, ERROR, 32}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 33}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 34}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 35}, {13, SHIFT, 65}, },
+			{{-1, REDUCE, 42}, {13, SHIFT, 66}, {17, SHIFT, 67}, },
+			{{-1, REDUCE, 37}, {21, SHIFT, 32}, {23, SHIFT, 33}, {26, SHIFT, 34}, {28, SHIFT, 35}, {32, SHIFT, 36}, },
+			{{-1, ERROR, 38}, {16, SHIFT, 69}, },
+			{{-1, ERROR, 39}, {6, SHIFT, 70}, },
+			{{-1, ERROR, 40}, {15, SHIFT, 23}, },
+			{{-1, ERROR, 41}, {15, SHIFT, 23}, {19, SHIFT, 1}, {20, SHIFT, 2}, },
+			{{-1, REDUCE, 54}, },
+			{{-1, REDUCE, 57}, {5, SHIFT, 10}, },
+			{{-1, ERROR, 44}, {14, SHIFT, 75}, },
+			{{-1, REDUCE, 45}, },
+			{{-1, ERROR, 46}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 47}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 48}, {13, SHIFT, 78}, },
+			{{-1, REDUCE, 22}, },
+			{{-1, REDUCE, 23}, },
+			{{-1, REDUCE, 24}, },
+			{{-1, REDUCE, 42}, {13, SHIFT, 79}, {17, SHIFT, 67}, },
+			{{-1, ERROR, 53}, {3, SHIFT, 80}, {22, SHIFT, 81}, },
+			{{-1, REDUCE, 3}, {4, SHIFT, 82}, },
+			{{-1, REDUCE, 5}, {6, SHIFT, 83}, {7, SHIFT, 84}, },
+			{{-1, REDUCE, 8}, {0, SHIFT, 85}, {2, SHIFT, 86}, },
+			{{-1, REDUCE, 11}, {11, SHIFT, 87}, },
+			{{-1, REDUCE, 13}, {8, SHIFT, 88}, {9, SHIFT, 89}, },
+			{{-1, REDUCE, 16}, {12, SHIFT, 90}, },
+			{{-1, REDUCE, 18}, },
+			{{-1, REDUCE, 20}, },
+			{{-1, REDUCE, 26}, },
+			{{-1, ERROR, 63}, {3, SHIFT, 80}, {24, SHIFT, 91}, },
+			{{-1, ERROR, 64}, {1, SHIFT, 92}, {3, SHIFT, 80}, },
+			{{-1, ERROR, 65}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, REDUCE, 39}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 67}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, REDUCE, 36}, },
+			{{-1, REDUCE, 35}, },
+			{{-1, ERROR, 70}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, REDUCE, 53}, },
 			{{-1, REDUCE, 51}, },
-			{{-1, REDUCE, 53}, {5, SHIFT, 10}, },
-			{{-1, ERROR, 26}, {12, SHIFT, 41}, },
-			{{-1, REDUCE, 40}, {15, SHIFT, 21}, },
+			{{-1, REDUCE, 57}, {5, SHIFT, 10}, },
+			{{-1, ERROR, 74}, {15, SHIFT, 23}, },
+			{{-1, ERROR, 75}, {15, SHIFT, 23}, {19, SHIFT, 1}, {20, SHIFT, 2}, },
+			{{-1, REDUCE, 19}, },
+			{{-1, ERROR, 77}, {3, SHIFT, 80}, {14, SHIFT, 102}, },
+			{{-1, ERROR, 78}, {14, SHIFT, 103}, },
+			{{-1, REDUCE, 39}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 80}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 81}, {15, SHIFT, 23}, },
+			{{-1, ERROR, 82}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 83}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 84}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 85}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 86}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 87}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 88}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 89}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 90}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, ERROR, 91}, {15, SHIFT, 23}, },
+			{{-1, REDUCE, 32}, },
+			{{-1, ERROR, 93}, {3, SHIFT, 80}, {14, SHIFT, 117}, },
+			{{-1, REDUCE, 41}, {3, SHIFT, 80}, {5, SHIFT, 118}, },
+			{{-1, ERROR, 95}, {14, SHIFT, 120}, },
+			{{-1, ERROR, 96}, {3, SHIFT, 80}, {18, SHIFT, 121}, },
+			{{-1, ERROR, 97}, {1, SHIFT, 122}, {3, SHIFT, 80}, },
+			{{-1, ERROR, 98}, {15, SHIFT, 23}, },
 			{{-1, REDUCE, 52}, },
-			{{-1, ERROR, 29}, {13, SHIFT, 23}, {17, SHIFT, 1}, {18, SHIFT, 2}, },
-			{{-1, REDUCE, 53}, {5, SHIFT, 10}, },
-			{{-1, ERROR, 31}, {16, SHIFT, 45}, },
-			{{-1, ERROR, 32}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 33}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 34}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 35}, {11, SHIFT, 63}, },
-			{{-1, REDUCE, 38}, {11, SHIFT, 64}, {15, SHIFT, 65}, },
-			{{-1, REDUCE, 33}, {19, SHIFT, 32}, {21, SHIFT, 33}, {24, SHIFT, 34}, {26, SHIFT, 35}, {30, SHIFT, 36}, },
-			{{-1, ERROR, 38}, {14, SHIFT, 67}, },
-			{{-1, ERROR, 39}, {6, SHIFT, 68}, },
-			{{-1, ERROR, 40}, {13, SHIFT, 23}, },
-			{{-1, ERROR, 41}, {13, SHIFT, 23}, {17, SHIFT, 1}, {18, SHIFT, 2}, },
 			{{-1, REDUCE, 50}, },
-			{{-1, REDUCE, 53}, {5, SHIFT, 10}, },
-			{{-1, ERROR, 44}, {12, SHIFT, 73}, },
-			{{-1, REDUCE, 41}, },
-			{{-1, ERROR, 46}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 47}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 48}, {11, SHIFT, 76}, },
-			{{-1, REDUCE, 18}, },
-			{{-1, REDUCE, 19}, },
-			{{-1, REDUCE, 20}, },
-			{{-1, REDUCE, 38}, {11, SHIFT, 77}, {15, SHIFT, 65}, },
-			{{-1, ERROR, 53}, {3, SHIFT, 78}, {20, SHIFT, 79}, },
-			{{-1, REDUCE, 3}, {4, SHIFT, 80}, },
-			{{-1, REDUCE, 5}, {6, SHIFT, 81}, {7, SHIFT, 82}, },
-			{{-1, REDUCE, 8}, {0, SHIFT, 83}, {2, SHIFT, 84}, },
-			{{-1, REDUCE, 11}, {8, SHIFT, 85}, {9, SHIFT, 86}, },
+			{{-1, REDUCE, 57}, {5, SHIFT, 10}, },
+			{{-1, REDUCE, 21}, },
+			{{-1, REDUCE, 25}, },
+			{{-1, ERROR, 104}, {14, SHIFT, 125}, },
+			{{-1, REDUCE, 2}, {4, SHIFT, 82}, },
+			{{-1, REDUCE, 30}, {25, SHIFT, 126}, },
+			{{-1, REDUCE, 4}, {6, SHIFT, 83}, {7, SHIFT, 84}, },
+			{{-1, REDUCE, 6}, {0, SHIFT, 85}, {2, SHIFT, 86}, },
+			{{-1, REDUCE, 7}, {0, SHIFT, 85}, {2, SHIFT, 86}, },
+			{{-1, REDUCE, 9}, {11, SHIFT, 87}, },
+			{{-1, REDUCE, 10}, {11, SHIFT, 87}, },
+			{{-1, REDUCE, 12}, {8, SHIFT, 88}, {9, SHIFT, 89}, },
 			{{-1, REDUCE, 14}, },
-			{{-1, REDUCE, 16}, },
-			{{-1, REDUCE, 22}, },
-			{{-1, ERROR, 61}, {3, SHIFT, 78}, {22, SHIFT, 87}, },
-			{{-1, ERROR, 62}, {1, SHIFT, 88}, {3, SHIFT, 78}, },
-			{{-1, ERROR, 63}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, REDUCE, 35}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 65}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, REDUCE, 32}, },
-			{{-1, REDUCE, 31}, },
-			{{-1, ERROR, 68}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, REDUCE, 49}, },
-			{{-1, REDUCE, 47}, },
-			{{-1, REDUCE, 53}, {5, SHIFT, 10}, },
-			{{-1, ERROR, 72}, {13, SHIFT, 23}, },
-			{{-1, ERROR, 73}, {13, SHIFT, 23}, {17, SHIFT, 1}, {18, SHIFT, 2}, },
 			{{-1, REDUCE, 15}, },
-			{{-1, ERROR, 75}, {3, SHIFT, 78}, {12, SHIFT, 98}, },
-			{{-1, ERROR, 76}, {12, SHIFT, 99}, },
-			{{-1, REDUCE, 35}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 78}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 79}, {13, SHIFT, 23}, },
-			{{-1, ERROR, 80}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 81}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 82}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 83}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 84}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 85}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 86}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, ERROR, 87}, {13, SHIFT, 23}, },
-			{{-1, REDUCE, 28}, },
-			{{-1, ERROR, 89}, {3, SHIFT, 78}, {12, SHIFT, 111}, },
-			{{-1, REDUCE, 37}, {3, SHIFT, 78}, {5, SHIFT, 112}, },
-			{{-1, ERROR, 91}, {12, SHIFT, 114}, },
-			{{-1, ERROR, 92}, {3, SHIFT, 78}, {16, SHIFT, 115}, },
-			{{-1, ERROR, 93}, {1, SHIFT, 116}, {3, SHIFT, 78}, },
-			{{-1, ERROR, 94}, {13, SHIFT, 23}, },
-			{{-1, REDUCE, 48}, },
-			{{-1, REDUCE, 46}, },
-			{{-1, REDUCE, 53}, {5, SHIFT, 10}, },
 			{{-1, REDUCE, 17}, },
-			{{-1, REDUCE, 21}, },
-			{{-1, ERROR, 100}, {12, SHIFT, 119}, },
-			{{-1, REDUCE, 2}, {4, SHIFT, 80}, },
-			{{-1, REDUCE, 26}, {23, SHIFT, 120}, },
-			{{-1, REDUCE, 4}, {6, SHIFT, 81}, {7, SHIFT, 82}, },
-			{{-1, REDUCE, 6}, {0, SHIFT, 83}, {2, SHIFT, 84}, },
-			{{-1, REDUCE, 7}, {0, SHIFT, 83}, {2, SHIFT, 84}, },
-			{{-1, REDUCE, 9}, {8, SHIFT, 85}, {9, SHIFT, 86}, },
-			{{-1, REDUCE, 10}, {8, SHIFT, 85}, {9, SHIFT, 86}, },
-			{{-1, REDUCE, 12}, },
-			{{-1, REDUCE, 13}, },
-			{{-1, REDUCE, 25}, },
-			{{-1, ERROR, 111}, {1, SHIFT, 121}, },
-			{{-1, ERROR, 112}, {10, SHIFT, 46}, {11, SHIFT, 47}, {25, SHIFT, 48}, {27, SHIFT, 49}, {28, SHIFT, 50}, {29, SHIFT, 51}, {30, SHIFT, 52}, },
-			{{-1, REDUCE, 34}, },
-			{{-1, ERROR, 114}, {1, SHIFT, 123}, },
-			{{-1, REDUCE, 39}, },
-			{{-1, REDUCE, 24}, },
-			{{-1, REDUCE, 45}, },
-			{{-1, ERROR, 118}, {13, SHIFT, 23}, },
-			{{-1, REDUCE, 23}, },
-			{{-1, ERROR, 120}, {13, SHIFT, 23}, },
 			{{-1, REDUCE, 29}, },
-			{{-1, REDUCE, 37}, {3, SHIFT, 78}, {5, SHIFT, 112}, },
-			{{-1, REDUCE, 30}, },
-			{{-1, REDUCE, 44}, },
+			{{-1, ERROR, 117}, {1, SHIFT, 127}, },
+			{{-1, ERROR, 118}, {10, SHIFT, 46}, {13, SHIFT, 47}, {27, SHIFT, 48}, {29, SHIFT, 49}, {30, SHIFT, 50}, {31, SHIFT, 51}, {32, SHIFT, 52}, },
+			{{-1, REDUCE, 38}, },
+			{{-1, ERROR, 120}, {1, SHIFT, 129}, },
+			{{-1, REDUCE, 43}, },
+			{{-1, REDUCE, 28}, },
+			{{-1, REDUCE, 49}, },
+			{{-1, ERROR, 124}, {15, SHIFT, 23}, },
 			{{-1, REDUCE, 27}, },
-			{{-1, REDUCE, 36}, },
+			{{-1, ERROR, 126}, {15, SHIFT, 23}, },
+			{{-1, REDUCE, 33}, },
+			{{-1, REDUCE, 41}, {3, SHIFT, 80}, {5, SHIFT, 118}, },
+			{{-1, REDUCE, 34}, },
+			{{-1, REDUCE, 48}, },
+			{{-1, REDUCE, 31}, },
+			{{-1, REDUCE, 40}, },
         };*/
     private static int[][][] gotoTable;
 /*      {
 			{{-1, 4}, },
-			{{-1, 90}, {32, 53}, {33, 61}, {34, 62}, {47, 75}, {63, 89}, {65, 92}, {68, 93}, {112, 122}, },
-			{{-1, 54}, {78, 101}, },
-			{{-1, 55}, {80, 103}, },
-			{{-1, 56}, {81, 104}, {82, 105}, },
-			{{-1, 57}, {83, 106}, {84, 107}, },
-			{{-1, 58}, {46, 74}, {85, 108}, {86, 109}, },
+			{{-1, 94}, {32, 53}, {33, 63}, {34, 64}, {47, 77}, {65, 93}, {67, 96}, {70, 97}, {118, 128}, },
+			{{-1, 54}, {80, 105}, },
+			{{-1, 55}, {82, 107}, },
+			{{-1, 56}, {83, 108}, {84, 109}, },
+			{{-1, 57}, {85, 110}, {86, 111}, },
+			{{-1, 58}, {87, 112}, },
 			{{-1, 59}, },
+			{{-1, 60}, {46, 76}, {88, 113}, {89, 114}, {90, 115}, },
+			{{-1, 61}, },
 			{{-1, 37}, },
-			{{-1, 24}, {29, 42}, {40, 69}, {41, 70}, {72, 95}, {73, 96}, {79, 102}, {87, 110}, {94, 117}, {118, 124}, {120, 125}, },
-			{{-1, 38}, {37, 66}, },
-			{{-1, 91}, {77, 100}, },
-			{{-1, 113}, {122, 126}, },
-			{{-1, 60}, {23, 39}, {37, 39}, },
-			{{-1, 5}, {9, 16}, {10, 18}, {15, 25}, {20, 30}, {29, 43}, {41, 71}, {73, 97}, },
+			{{-1, 24}, {29, 42}, {40, 71}, {41, 72}, {74, 99}, {75, 100}, {81, 106}, {91, 116}, {98, 123}, {124, 130}, {126, 131}, },
+			{{-1, 38}, {37, 68}, },
+			{{-1, 95}, {79, 104}, },
+			{{-1, 119}, {128, 132}, },
+			{{-1, 62}, {23, 39}, {37, 39}, },
+			{{-1, 5}, {9, 16}, {10, 18}, {15, 25}, {20, 30}, {29, 43}, {41, 73}, {75, 101}, },
 			{{-1, 17}, {0, 6}, {7, 13}, {11, 13}, },
 			{{-1, 7}, },
-			{{-1, 11}, {16, 26}, {18, 28}, {25, 40}, {30, 44}, {43, 72}, {71, 94}, {97, 118}, },
+			{{-1, 11}, {16, 26}, {18, 28}, {25, 40}, {30, 44}, {43, 74}, {73, 98}, {101, 124}, },
 			{{-1, 8}, {7, 14}, {11, 19}, },
         };*/
     private static String[] errorMessages;
@@ -2409,12 +2533,14 @@ public class Parser
 			"expecting: '}'",
 			"expecting: '='",
 			"expecting: '{'",
-			"expecting: '+', ';', '-', '|', '&', ',', '=', '<', '*', '/', ')', ']', 'alors', 'faire'",
-			"expecting: '+', ';', '-', '|', '&', ',', '=', '<', '*', '/', '(', ')', '[', ']', 'alors', 'faire'",
+			"expecting: '+', ';', '-', '|', '&', ',', '=', '<', '*', '/', '%', '+=', ')', ']', 'alors', 'faire'",
+			"expecting: '+', ';', '-', '|', '&', ',', '=', '<', '*', '/', '%', '+=', '(', ')', '[', ']', 'alors', 'faire'",
 			"expecting: '|', 'alors'",
 			"expecting: ';', '|', '&', ',', ')', ']', 'alors', 'faire'",
 			"expecting: ';', '|', '&', ',', '=', '<', ')', ']', 'alors', 'faire'",
 			"expecting: '+', ';', '-', '|', '&', ',', '=', '<', ')', ']', 'alors', 'faire'",
+			"expecting: '+', ';', '-', '|', '&', ',', '=', '<', '%', ')', ']', 'alors', 'faire'",
+			"expecting: '+', ';', '-', '|', '&', ',', '=', '<', '*', '/', '%', ')', ']', 'alors', 'faire'",
 			"expecting: '|', 'faire'",
 			"expecting: ';', '|'",
 			"expecting: '!', '(', ')', 'lire', nombre, 'vrai', 'faux', id",
@@ -2427,7 +2553,7 @@ public class Parser
         };*/
     private static int[] errors;
 /*      {
-			0, 1, 1, 2, 3, 4, 1, 0, 3, 5, 6, 0, 7, 1, 3, 8, 9, 1, 10, 3, 5, 11, 2, 12, 0, 13, 14, 15, 16, 8, 9, 17, 18, 18, 18, 2, 19, 12, 20, 21, 22, 8, 0, 13, 14, 10, 18, 18, 2, 23, 23, 23, 24, 25, 26, 27, 28, 23, 23, 23, 23, 29, 30, 18, 31, 18, 20, 32, 18, 0, 0, 13, 22, 8, 23, 33, 14, 31, 18, 22, 18, 18, 18, 18, 18, 18, 18, 22, 12, 33, 34, 14, 35, 30, 22, 0, 0, 13, 23, 23, 14, 26, 36, 27, 28, 28, 23, 23, 23, 23, 12, 37, 18, 14, 37, 23, 12, 0, 22, 23, 22, 12, 34, 12, 0, 12, 14, 
+			0, 1, 1, 2, 3, 4, 1, 0, 3, 5, 6, 0, 7, 1, 3, 8, 9, 1, 10, 3, 5, 11, 2, 12, 0, 13, 14, 15, 16, 8, 9, 17, 18, 18, 18, 2, 19, 12, 20, 21, 22, 8, 0, 13, 14, 10, 18, 18, 2, 23, 23, 23, 24, 25, 26, 27, 28, 29, 30, 23, 23, 23, 23, 31, 32, 18, 33, 18, 20, 34, 18, 0, 0, 13, 22, 8, 23, 35, 14, 33, 18, 22, 18, 18, 18, 18, 18, 18, 18, 18, 18, 22, 12, 35, 36, 14, 37, 32, 22, 0, 0, 13, 23, 23, 14, 26, 38, 27, 28, 28, 29, 29, 30, 30, 30, 23, 12, 39, 18, 14, 39, 23, 12, 0, 22, 23, 22, 12, 36, 12, 0, 12, 14, 
         };*/
 
     static 
diff --git a/src/lParser/parser/TokenIndex.java b/src/lParser/parser/TokenIndex.java
index e11fb83486ec008b6005ea3178abb9f09dbc4517..86cac14fdc7fabb0e89a90c148e62e5c02354960 100644
--- a/src/lParser/parser/TokenIndex.java
+++ b/src/lParser/parser/TokenIndex.java
@@ -76,128 +76,140 @@ class TokenIndex extends AnalysisAdapter
     }
 
     @Override
-    public void caseTGparenthese(@SuppressWarnings("unused") TGparenthese node)
+    public void caseTModulo(@SuppressWarnings("unused") TModulo node)
     {
         this.index = 11;
     }
 
     @Override
-    public void caseTDparenthese(@SuppressWarnings("unused") TDparenthese node)
+    public void caseTPlusegale(@SuppressWarnings("unused") TPlusegale node)
     {
         this.index = 12;
     }
 
     @Override
-    public void caseTAccoladeg(@SuppressWarnings("unused") TAccoladeg node)
+    public void caseTGparenthese(@SuppressWarnings("unused") TGparenthese node)
     {
         this.index = 13;
     }
 
     @Override
-    public void caseTAccoladed(@SuppressWarnings("unused") TAccoladed node)
+    public void caseTDparenthese(@SuppressWarnings("unused") TDparenthese node)
     {
         this.index = 14;
     }
 
     @Override
-    public void caseTCrochetg(@SuppressWarnings("unused") TCrochetg node)
+    public void caseTAccoladeg(@SuppressWarnings("unused") TAccoladeg node)
     {
         this.index = 15;
     }
 
     @Override
-    public void caseTCrochetd(@SuppressWarnings("unused") TCrochetd node)
+    public void caseTAccoladed(@SuppressWarnings("unused") TAccoladed node)
     {
         this.index = 16;
     }
 
     @Override
-    public void caseTBool(@SuppressWarnings("unused") TBool node)
+    public void caseTCrochetg(@SuppressWarnings("unused") TCrochetg node)
     {
         this.index = 17;
     }
 
     @Override
-    public void caseTEntier(@SuppressWarnings("unused") TEntier node)
+    public void caseTCrochetd(@SuppressWarnings("unused") TCrochetd node)
     {
         this.index = 18;
     }
 
     @Override
-    public void caseTSi(@SuppressWarnings("unused") TSi node)
+    public void caseTBool(@SuppressWarnings("unused") TBool node)
     {
         this.index = 19;
     }
 
     @Override
-    public void caseTAlors(@SuppressWarnings("unused") TAlors node)
+    public void caseTEntier(@SuppressWarnings("unused") TEntier node)
     {
         this.index = 20;
     }
 
     @Override
-    public void caseTTantque(@SuppressWarnings("unused") TTantque node)
+    public void caseTSi(@SuppressWarnings("unused") TSi node)
     {
         this.index = 21;
     }
 
     @Override
-    public void caseTFaire(@SuppressWarnings("unused") TFaire node)
+    public void caseTAlors(@SuppressWarnings("unused") TAlors node)
     {
         this.index = 22;
     }
 
     @Override
-    public void caseTSinon(@SuppressWarnings("unused") TSinon node)
+    public void caseTTantque(@SuppressWarnings("unused") TTantque node)
     {
         this.index = 23;
     }
 
     @Override
-    public void caseTRetourner(@SuppressWarnings("unused") TRetourner node)
+    public void caseTFaire(@SuppressWarnings("unused") TFaire node)
     {
         this.index = 24;
     }
 
     @Override
-    public void caseTLire(@SuppressWarnings("unused") TLire node)
+    public void caseTSinon(@SuppressWarnings("unused") TSinon node)
     {
         this.index = 25;
     }
 
     @Override
-    public void caseTEcrire(@SuppressWarnings("unused") TEcrire node)
+    public void caseTRetourner(@SuppressWarnings("unused") TRetourner node)
     {
         this.index = 26;
     }
 
     @Override
-    public void caseTNombre(@SuppressWarnings("unused") TNombre node)
+    public void caseTLire(@SuppressWarnings("unused") TLire node)
     {
         this.index = 27;
     }
 
     @Override
-    public void caseTVrai(@SuppressWarnings("unused") TVrai node)
+    public void caseTEcrire(@SuppressWarnings("unused") TEcrire node)
     {
         this.index = 28;
     }
 
     @Override
-    public void caseTFaux(@SuppressWarnings("unused") TFaux node)
+    public void caseTNombre(@SuppressWarnings("unused") TNombre node)
     {
         this.index = 29;
     }
 
     @Override
-    public void caseTId(@SuppressWarnings("unused") TId node)
+    public void caseTVrai(@SuppressWarnings("unused") TVrai node)
     {
         this.index = 30;
     }
 
     @Override
-    public void caseEOF(@SuppressWarnings("unused") EOF node)
+    public void caseTFaux(@SuppressWarnings("unused") TFaux node)
     {
         this.index = 31;
     }
+
+    @Override
+    public void caseTId(@SuppressWarnings("unused") TId node)
+    {
+        this.index = 32;
+    }
+
+    @Override
+    public void caseEOF(@SuppressWarnings("unused") EOF node)
+    {
+        this.index = 33;
+    }
 }
diff --git a/src/lParser/parser/parser.dat b/src/lParser/parser/parser.dat
index 9dbabdb8133515e879ff42809b35f9ed019ff33c..95f7cf6812ca2d7d1ef5b6136166c1adbe5aa50a 100644
Binary files a/src/lParser/parser/parser.dat and b/src/lParser/parser/parser.dat differ
diff --git a/src/sa/Sc2sa.java b/src/sa/Sc2sa.java
index 7b3d648539a667b0542267473de7248968d40f44..d8f06624d4fdfc9295d458164c1320ad156b3f4c 100644
--- a/src/sa/Sc2sa.java
+++ b/src/sa/Sc2sa.java
@@ -1,6 +1,7 @@
 package sa;
 import lParser.analysis.*;
 import lParser.node.*;
+import saParser.node.AModuloExp;
 import util.Type;
 
 public class Sc2sa extends DepthFirstAdapter
@@ -152,7 +153,7 @@ public class Sc2sa extends DepthFirstAdapter
 
         node.getAdd().apply(this);
         op1=(SaExp) this.returnValue ;
-        node.getMult().apply(this);
+        node.getMod().apply(this);
         op2=(SaExp) this.returnValue ;
         this.returnValue = new SaExpAdd(op1,op2);
 
@@ -167,13 +168,35 @@ public class Sc2sa extends DepthFirstAdapter
 
         node.getAdd().apply(this);
         op1=(SaExp) this.returnValue ;
-        node.getMult().apply(this);
+        node.getMod().apply(this);
         op2=(SaExp) this.returnValue ;
         this.returnValue = new SaExpSub(op1,op2);
         outAMoinsAdd(node);
     }
 
+    public void caseAAddtoAdd(AAddtoAddto node){
+        SaExp op2 = null;
+        SaVar op1= null ;
+
+        node.getAddto().apply(this);
+        op1 = (SaVar) this.returnValue;
+        this.returnValue = new SaIncr(op1,null);
+
+    }
 
+    public void caseAmodmod(AModMod node){
+        SaExp op1 = null ;
+        node.getMod().apply(this);
+        op1 = (SaExp) this.returnValue;
+        SaExp op2 = null ;
+        node.getMult().apply(this);
+        op2 = (SaExp) this.returnValue;
+
+        this.returnValue = new SaExpModulo(op1,op2);
+
+    }
+
+/*
     @Override
     public void caseAMultAdd(AMultAdd node)
     {
@@ -181,7 +204,7 @@ public class Sc2sa extends DepthFirstAdapter
         node.getMult().apply(this);
         outAMultAdd(node);
     }
-
+*/
     @Override
     public void caseAFoisMult(AFoisMult node)
     {
@@ -214,17 +237,18 @@ public class Sc2sa extends DepthFirstAdapter
         this.returnValue = new SaExpDiv(op1, op2);
         outADiviserMult(node);
     }
-
+/*
     public void inANegMult(ANegMult node)
     {
         defaultIn(node);
     }
 
-    public void outANegMult(ANegMult node)
+     public void outANegMult(ANegMult node)
     {
         defaultOut(node);
     }
 
+
     @Override
     public void caseANegMult(ANegMult node)
     {
@@ -233,6 +257,7 @@ public class Sc2sa extends DepthFirstAdapter
         outANegMult(node);
     }
 
+  */
     public void inANonNeg(ANonNeg node)
     {
         defaultIn(node);
diff --git a/src/saParser/analysis/Analysis.java b/src/saParser/analysis/Analysis.java
index 3e31ebf283b11de0531d14f1c2801f3c435b1dee..98d490ef368348b9a2a42a3ea139f63c9dd942a2 100644
--- a/src/saParser/analysis/Analysis.java
+++ b/src/saParser/analysis/Analysis.java
@@ -19,6 +19,7 @@ public interface Analysis extends Switch
     void caseAEqualExp(AEqualExp node);
     void caseAInfExp(AInfExp node);
     void caseAMultExp(AMultExp node);
+    void caseAModuloExp(AModuloExp node);
     void caseAOrExp(AOrExp node);
     void caseASubExp(ASubExp node);
     void caseANotExp(ANotExp node);
@@ -29,6 +30,7 @@ public interface Analysis extends Switch
     void caseAIntExp(AIntExp node);
     void caseALireExp(ALireExp node);
     void caseAAffectInst(AAffectInst node);
+    void caseAIncrInst(AIncrInst node);
     void caseABlocInst(ABlocInst node);
     void caseAEcritureInst(AEcritureInst node);
     void caseARetourInst(ARetourInst node);
@@ -73,12 +75,14 @@ public interface Analysis extends Switch
     void caseTSaexpint(TSaexpint node);
     void caseTSaexplire(TSaexplire node);
     void caseTSaexpmult(TSaexpmult node);
+    void caseTSaexpmodulo(TSaexpmodulo node);
     void caseTSaexpnot(TSaexpnot node);
     void caseTSaexpor(TSaexpor node);
     void caseTSaexpsub(TSaexpsub node);
     void caseTSaexpvar(TSaexpvar node);
     void caseTSaexpvrai(TSaexpvrai node);
     void caseTSainstaffect(TSainstaffect node);
+    void caseTSaincr(TSaincr node);
     void caseTSainstbloc(TSainstbloc node);
     void caseTSainstecriture(TSainstecriture node);
     void caseTSainstretour(TSainstretour node);
diff --git a/src/saParser/analysis/AnalysisAdapter.java b/src/saParser/analysis/AnalysisAdapter.java
index 2d1be4a5456d9891e64fdec89f2082720bfd4aeb..6f315c676a026f3a59d9dcce4fb877af9e170731 100644
--- a/src/saParser/analysis/AnalysisAdapter.java
+++ b/src/saParser/analysis/AnalysisAdapter.java
@@ -116,6 +116,12 @@ public class AnalysisAdapter implements Analysis
         defaultCase(node);
     }
 
+    @Override
+    public void caseAModuloExp(AModuloExp node)
+    {
+        defaultCase(node);
+    }
+
     @Override
     public void caseAOrExp(AOrExp node)
     {
@@ -176,6 +182,12 @@ public class AnalysisAdapter implements Analysis
         defaultCase(node);
     }
 
+    @Override
+    public void caseAIncrInst(AIncrInst node)
+    {
+        defaultCase(node);
+    }
+
     @Override
     public void caseABlocInst(ABlocInst node)
     {
@@ -434,6 +446,12 @@ public class AnalysisAdapter implements Analysis
         defaultCase(node);
     }
 
+    @Override
+    public void caseTSaexpmodulo(TSaexpmodulo node)
+    {
+        defaultCase(node);
+    }
+
     @Override
     public void caseTSaexpnot(TSaexpnot node)
     {
@@ -470,6 +488,12 @@ public class AnalysisAdapter implements Analysis
         defaultCase(node);
     }
 
+    @Override
+    public void caseTSaincr(TSaincr node)
+    {
+        defaultCase(node);
+    }
+
     @Override
     public void caseTSainstbloc(TSainstbloc node)
     {
diff --git a/src/saParser/analysis/DepthFirstAdapter.java b/src/saParser/analysis/DepthFirstAdapter.java
index 80c2ee4eda986187e243174e7a8e2078661af075..c5dd2b2e2da07b3e25894dd14704e363c21b7d61 100644
--- a/src/saParser/analysis/DepthFirstAdapter.java
+++ b/src/saParser/analysis/DepthFirstAdapter.java
@@ -295,6 +295,43 @@ public class DepthFirstAdapter extends AnalysisAdapter
         outAMultExp(node);
     }
 
+    public void inAModuloExp(AModuloExp node)
+    {
+        defaultIn(node);
+    }
+
+    public void outAModuloExp(AModuloExp node)
+    {
+        defaultOut(node);
+    }
+
+    @Override
+    public void caseAModuloExp(AModuloExp node)
+    {
+        inAModuloExp(node);
+        if(node.getPo() != null)
+        {
+            node.getPo().apply(this);
+        }
+        if(node.getSaexpmodulo() != null)
+        {
+            node.getSaexpmodulo().apply(this);
+        }
+        if(node.getOp1() != null)
+        {
+            node.getOp1().apply(this);
+        }
+        if(node.getOp2() != null)
+        {
+            node.getOp2().apply(this);
+        }
+        if(node.getPf() != null)
+        {
+            node.getPf().apply(this);
+        }
+        outAModuloExp(node);
+    }
+
     public void inAOrExp(AOrExp node)
     {
         defaultIn(node);
@@ -589,6 +626,43 @@ public class DepthFirstAdapter extends AnalysisAdapter
         outAAffectInst(node);
     }
 
+    public void inAIncrInst(AIncrInst node)
+    {
+        defaultIn(node);
+    }
+
+    public void outAIncrInst(AIncrInst node)
+    {
+        defaultOut(node);
+    }
+
+    @Override
+    public void caseAIncrInst(AIncrInst node)
+    {
+        inAIncrInst(node);
+        if(node.getPo() != null)
+        {
+            node.getPo().apply(this);
+        }
+        if(node.getSaincr() != null)
+        {
+            node.getSaincr().apply(this);
+        }
+        if(node.getVar() != null)
+        {
+            node.getVar().apply(this);
+        }
+        if(node.getExp() != null)
+        {
+            node.getExp().apply(this);
+        }
+        if(node.getPf() != null)
+        {
+            node.getPf().apply(this);
+        }
+        outAIncrInst(node);
+    }
+
     public void inABlocInst(ABlocInst node)
     {
         defaultIn(node);
diff --git a/src/saParser/analysis/ReversedDepthFirstAdapter.java b/src/saParser/analysis/ReversedDepthFirstAdapter.java
index 598cce69c216ddffe6465bc0fd4345115cff9b3a..9e9deb2f1968d380176da8566de40b1f7a6792fa 100644
--- a/src/saParser/analysis/ReversedDepthFirstAdapter.java
+++ b/src/saParser/analysis/ReversedDepthFirstAdapter.java
@@ -295,6 +295,43 @@ public class ReversedDepthFirstAdapter extends AnalysisAdapter
         outAMultExp(node);
     }
 
+    public void inAModuloExp(AModuloExp node)
+    {
+        defaultIn(node);
+    }
+
+    public void outAModuloExp(AModuloExp node)
+    {
+        defaultOut(node);
+    }
+
+    @Override
+    public void caseAModuloExp(AModuloExp node)
+    {
+        inAModuloExp(node);
+        if(node.getPf() != null)
+        {
+            node.getPf().apply(this);
+        }
+        if(node.getOp2() != null)
+        {
+            node.getOp2().apply(this);
+        }
+        if(node.getOp1() != null)
+        {
+            node.getOp1().apply(this);
+        }
+        if(node.getSaexpmodulo() != null)
+        {
+            node.getSaexpmodulo().apply(this);
+        }
+        if(node.getPo() != null)
+        {
+            node.getPo().apply(this);
+        }
+        outAModuloExp(node);
+    }
+
     public void inAOrExp(AOrExp node)
     {
         defaultIn(node);
@@ -589,6 +626,43 @@ public class ReversedDepthFirstAdapter extends AnalysisAdapter
         outAAffectInst(node);
     }
 
+    public void inAIncrInst(AIncrInst node)
+    {
+        defaultIn(node);
+    }
+
+    public void outAIncrInst(AIncrInst node)
+    {
+        defaultOut(node);
+    }
+
+    @Override
+    public void caseAIncrInst(AIncrInst node)
+    {
+        inAIncrInst(node);
+        if(node.getPf() != null)
+        {
+            node.getPf().apply(this);
+        }
+        if(node.getExp() != null)
+        {
+            node.getExp().apply(this);
+        }
+        if(node.getVar() != null)
+        {
+            node.getVar().apply(this);
+        }
+        if(node.getSaincr() != null)
+        {
+            node.getSaincr().apply(this);
+        }
+        if(node.getPo() != null)
+        {
+            node.getPo().apply(this);
+        }
+        outAIncrInst(node);
+    }
+
     public void inABlocInst(ABlocInst node)
     {
         defaultIn(node);
diff --git a/src/saParser/lexer/Lexer.java b/src/saParser/lexer/Lexer.java
index 648ecb5a1cf0574424e9c9de22d6584f6e2200ac..5529221c5a28aa9328e398b8400a8468773e919d 100644
--- a/src/saParser/lexer/Lexer.java
+++ b/src/saParser/lexer/Lexer.java
@@ -619,7 +619,6 @@ public class Lexer
                     case 44:
                         {
                             @SuppressWarnings("hiding") Token token = new44(
-                                getText(accept_length),
                                 start_line + 1,
                                 start_pos + 1);
                             pushBack(accept_length);
@@ -630,6 +629,27 @@ public class Lexer
                     case 45:
                         {
                             @SuppressWarnings("hiding") Token token = new45(
+                                start_line + 1,
+                                start_pos + 1);
+                            pushBack(accept_length);
+                            this.pos = accept_pos;
+                            this.line = accept_line;
+                            return token;
+                        }
+                    case 46:
+                        {
+                            @SuppressWarnings("hiding") Token token = new46(
+                                getText(accept_length),
+                                start_line + 1,
+                                start_pos + 1);
+                            pushBack(accept_length);
+                            this.pos = accept_pos;
+                            this.line = accept_line;
+                            return token;
+                        }
+                    case 47:
+                        {
+                            @SuppressWarnings("hiding") Token token = new47(
                                 getText(accept_length),
                                 start_line + 1,
                                 start_pos + 1);
@@ -678,33 +698,35 @@ public class Lexer
     Token new16(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpint(line, pos); }
     Token new17(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexplire(line, pos); }
     Token new18(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpmult(line, pos); }
-    Token new19(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpnot(line, pos); }
-    Token new20(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpor(line, pos); }
-    Token new21(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpsub(line, pos); }
-    Token new22(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpvar(line, pos); }
-    Token new23(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpvrai(line, pos); }
-    Token new24(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSainstaffect(line, pos); }
-    Token new25(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSainstbloc(line, pos); }
-    Token new26(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSainstecriture(line, pos); }
-    Token new27(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSainstretour(line, pos); }
-    Token new28(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSainstsi(line, pos); }
-    Token new29(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSainsttantque(line, pos); }
-    Token new30(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaldecfonc(line, pos); }
-    Token new31(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaldecvar(line, pos); }
-    Token new32(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSalexp(line, pos); }
-    Token new33(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSalinst(line, pos); }
-    Token new34(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaprog(line, pos); }
-    Token new35(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSavarindicee(line, pos); }
-    Token new36(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSavarsimple(line, pos); }
-    Token new37(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TFaux(line, pos); }
-    Token new38(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TVrai(line, pos); }
-    Token new39(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLire(line, pos); }
-    Token new40(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNull(line, pos); }
-    Token new41(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEntier(line, pos); }
-    Token new42(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBool(line, pos); }
-    Token new43(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNul(line, pos); }
-    Token new44(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInteger(text, line, pos); }
-    Token new45(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TId(text, line, pos); }
+    Token new19(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpmodulo(line, pos); }
+    Token new20(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpnot(line, pos); }
+    Token new21(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpor(line, pos); }
+    Token new22(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpsub(line, pos); }
+    Token new23(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpvar(line, pos); }
+    Token new24(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaexpvrai(line, pos); }
+    Token new25(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSainstaffect(line, pos); }
+    Token new26(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaincr(line, pos); }
+    Token new27(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSainstbloc(line, pos); }
+    Token new28(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSainstecriture(line, pos); }
+    Token new29(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSainstretour(line, pos); }
+    Token new30(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSainstsi(line, pos); }
+    Token new31(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSainsttantque(line, pos); }
+    Token new32(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaldecfonc(line, pos); }
+    Token new33(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaldecvar(line, pos); }
+    Token new34(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSalexp(line, pos); }
+    Token new35(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSalinst(line, pos); }
+    Token new36(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSaprog(line, pos); }
+    Token new37(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSavarindicee(line, pos); }
+    Token new38(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSavarsimple(line, pos); }
+    Token new39(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TFaux(line, pos); }
+    Token new40(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TVrai(line, pos); }
+    Token new41(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLire(line, pos); }
+    Token new42(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNull(line, pos); }
+    Token new43(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEntier(line, pos); }
+    Token new44(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBool(line, pos); }
+    Token new45(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNul(line, pos); }
+    Token new46(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInteger(text, line, pos); }
+    Token new47(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TId(text, line, pos); }
 
     private int getChar() throws IOException
     {
@@ -809,150 +831,157 @@ public class Lexer
             {{48, 111, -31}, {112, 112, 57}, {113, 122, 20}, },
             {{48, 90, -8}, {97, 98, 20}, {99, 99, 58}, {100, 122, 20}, },
             {{48, 111, -31}, {112, 112, 59}, {113, 122, 20}, },
-            {{48, 90, -8}, {97, 114, 20}, {115, 115, 60}, {116, 122, 20}, },
-            {{48, 100, -32}, {101, 101, 61}, {102, 122, 20}, },
-            {{48, 119, -33}, {120, 120, 62}, {121, 122, 20}, },
-            {{48, 109, -14}, {110, 110, 63}, {111, 122, 20}, },
-            {{48, 110, -13}, {111, 111, 64}, {112, 122, 20}, },
-            {{48, 113, -18}, {114, 114, 65}, {115, 122, 20}, },
-            {{48, 122, -8}, },
-            {{48, 100, -32}, {101, 101, 66}, {102, 122, 20}, },
-            {{48, 122, -8}, },
+            {{48, 98, -45}, {99, 99, 60}, {100, 114, 20}, {115, 115, 61}, {116, 122, 20}, },
+            {{48, 100, -32}, {101, 101, 62}, {102, 122, 20}, },
+            {{48, 119, -33}, {120, 120, 63}, {121, 122, 20}, },
+            {{48, 109, -14}, {110, 110, 64}, {111, 122, 20}, },
+            {{48, 110, -13}, {111, 111, 65}, {112, 122, 20}, },
+            {{48, 113, -18}, {114, 114, 66}, {115, 122, 20}, },
             {{48, 122, -8}, },
+            {{48, 100, -32}, {101, 101, 67}, {102, 122, 20}, },
             {{48, 122, -8}, },
             {{48, 122, -8}, },
-            {{48, 100, -32}, {101, 101, 67}, {102, 122, 20}, },
-            {{48, 57, 20}, {65, 69, 20}, {70, 70, 68}, {71, 83, 20}, {84, 84, 69}, {85, 85, 20}, {86, 86, 70}, {87, 122, -23}, },
-            {{48, 57, 20}, {65, 65, 71}, {66, 67, 20}, {68, 68, 72}, {69, 69, 73}, {70, 70, 74}, {71, 72, 20}, {73, 73, 75}, {74, 75, 20}, {76, 76, 76}, {77, 77, 77}, {78, 78, 78}, {79, 79, 79}, {80, 82, 20}, {83, 83, 80}, {84, 85, 20}, {86, 86, 81}, {87, 122, -23}, },
-            {{48, 115, -25}, {116, 116, 82}, {117, 122, 20}, },
-            {{48, 98, -45}, {99, 99, 83}, {100, 122, 20}, },
-            {{48, 111, -31}, {112, 112, 84}, {113, 122, 20}, },
-            {{48, 114, -47}, {115, 115, 85}, {116, 122, 20}, },
-            {{48, 90, -8}, {97, 102, 20}, {103, 103, 86}, {104, 122, 20}, },
-            {{48, 57, 20}, {65, 72, 20}, {73, 73, 87}, {74, 82, 20}, {83, 83, 88}, {84, 90, 20}, {97, 122, 20}, },
-            {{48, 113, -18}, {114, 114, 89}, {115, 122, 20}, },
-            {{48, 107, -28}, {108, 108, 90}, {109, 122, 20}, },
-            {{48, 110, -13}, {111, 111, 91}, {112, 122, 20}, },
-            {{48, 90, -8}, {97, 97, 92}, {98, 122, 20}, },
-            {{48, 90, -8}, {97, 97, 93}, {98, 122, 20}, },
-            {{48, 90, -8}, {97, 99, 20}, {100, 100, 94}, {101, 109, 20}, {110, 110, 95}, {111, 111, 20}, {112, 112, 96}, {113, 122, 20}, },
-            {{48, 104, -16}, {105, 105, 97}, {106, 122, 20}, },
-            {{48, 90, -8}, {97, 112, 20}, {113, 113, 98}, {114, 122, 20}, },
-            {{48, 90, -8}, {97, 97, 99}, {98, 122, 20}, },
-            {{48, 109, -14}, {110, 110, 100}, {111, 122, 20}, },
-            {{48, 104, -16}, {105, 105, 101}, {106, 122, 20}, },
-            {{48, 116, -17}, {117, 117, 102}, {118, 122, 20}, },
-            {{48, 110, -13}, {111, 111, 103}, {112, 122, 20}, },
-            {{48, 113, -18}, {114, 114, 104}, {115, 122, 20}, },
-            {{48, 116, -17}, {117, 117, 105}, {118, 122, 20}, },
-            {{48, 90, -8}, {97, 97, 106}, {98, 113, 20}, {114, 114, 107}, {115, 122, 20}, },
-            {{48, 57, 20}, {65, 65, 108}, {66, 66, 109}, {67, 68, 20}, {69, 69, 110}, {70, 81, 20}, {82, 82, 111}, {83, 83, 112}, {84, 84, 113}, {85, 90, 20}, {97, 122, 20}, },
-            {{48, 69, -60}, {70, 70, 114}, {71, 85, 20}, {86, 86, 115}, {87, 122, -23}, },
             {{48, 122, -8}, },
-            {{48, 115, -25}, {116, 116, 116}, {117, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 109, -14}, {110, 110, 117}, {111, 122, 20}, },
-            {{48, 104, -16}, {105, 105, 118}, {106, 122, 20}, },
+            {{48, 100, -32}, {101, 101, 68}, {102, 122, 20}, },
+            {{48, 57, 20}, {65, 69, 20}, {70, 70, 69}, {71, 83, 20}, {84, 84, 70}, {85, 85, 20}, {86, 86, 71}, {87, 122, -23}, },
+            {{48, 57, 20}, {65, 65, 72}, {66, 67, 20}, {68, 68, 73}, {69, 69, 74}, {70, 70, 75}, {71, 72, 20}, {73, 73, 76}, {74, 75, 20}, {76, 76, 77}, {77, 77, 78}, {78, 78, 79}, {79, 79, 80}, {80, 82, 20}, {83, 83, 81}, {84, 85, 20}, {86, 86, 82}, {87, 122, -23}, },
+            {{48, 113, -18}, {114, 114, 83}, {115, 122, 20}, },
+            {{48, 115, -25}, {116, 116, 84}, {117, 122, 20}, },
+            {{48, 98, -45}, {99, 99, 85}, {100, 122, 20}, },
+            {{48, 111, -31}, {112, 112, 86}, {113, 122, 20}, },
+            {{48, 90, -8}, {97, 114, 20}, {115, 115, 87}, {116, 122, 20}, },
+            {{48, 90, -8}, {97, 102, 20}, {103, 103, 88}, {104, 122, 20}, },
+            {{48, 57, 20}, {65, 72, 20}, {73, 73, 89}, {74, 82, 20}, {83, 83, 90}, {84, 90, 20}, {97, 122, 20}, },
+            {{48, 113, -18}, {114, 114, 91}, {115, 122, 20}, },
+            {{48, 107, -28}, {108, 108, 92}, {109, 122, 20}, },
+            {{48, 110, -13}, {111, 111, 93}, {112, 122, 20}, },
+            {{48, 90, -8}, {97, 97, 94}, {98, 122, 20}, },
+            {{48, 90, -8}, {97, 97, 95}, {98, 122, 20}, },
+            {{48, 90, -8}, {97, 99, 20}, {100, 100, 96}, {101, 109, 20}, {110, 110, 97}, {111, 111, 20}, {112, 112, 98}, {113, 122, 20}, },
+            {{48, 104, -16}, {105, 105, 99}, {106, 122, 20}, },
+            {{48, 90, -8}, {97, 112, 20}, {113, 113, 100}, {114, 122, 20}, },
+            {{48, 90, -8}, {97, 97, 101}, {98, 122, 20}, },
+            {{48, 109, -14}, {110, 110, 102}, {111, 122, 20}, },
+            {{48, 104, -16}, {105, 105, 103}, {106, 122, 20}, },
+            {{48, 110, -13}, {111, 111, 104}, {112, 116, 20}, {117, 117, 105}, {118, 122, 20}, },
+            {{48, 110, -13}, {111, 111, 106}, {112, 122, 20}, },
+            {{48, 113, -18}, {114, 114, 107}, {115, 122, 20}, },
+            {{48, 116, -17}, {117, 117, 108}, {118, 122, 20}, },
+            {{48, 90, -8}, {97, 97, 109}, {98, 113, 20}, {114, 114, 110}, {115, 122, 20}, },
             {{48, 122, -8}, },
+            {{48, 57, 20}, {65, 65, 111}, {66, 66, 112}, {67, 68, 20}, {69, 69, 113}, {70, 81, 20}, {82, 82, 114}, {83, 83, 115}, {84, 84, 116}, {85, 90, 20}, {97, 122, 20}, },
+            {{48, 69, -60}, {70, 70, 117}, {71, 85, 20}, {86, 86, 118}, {87, 122, -23}, },
             {{48, 122, -8}, },
-            {{48, 109, -14}, {110, 110, 119}, {111, 122, 20}, },
-            {{48, 90, -8}, {97, 97, 20}, {98, 98, 120}, {99, 122, 20}, },
-            {{48, 113, -18}, {114, 114, 121}, {115, 122, 20}, },
-            {{48, 99, -73}, {100, 100, 122}, {101, 122, 20}, },
-            {{48, 99, -73}, {100, 100, 123}, {101, 122, 20}, },
-            {{48, 111, -31}, {112, 112, 124}, {113, 122, 20}, },
-            {{48, 90, -8}, {97, 117, 20}, {118, 118, 125}, {119, 122, 20}, },
-            {{48, 116, -17}, {117, 117, 126}, {118, 122, 20}, },
-            {{48, 116, -17}, {117, 117, 127}, {118, 122, 20}, },
-            {{48, 90, -8}, {97, 101, 20}, {102, 102, 128}, {103, 115, 20}, {116, 116, 129}, {117, 122, 20}, },
-            {{48, 113, -18}, {114, 114, 130}, {115, 122, 20}, },
-            {{48, 107, -28}, {108, 108, 131}, {109, 122, 20}, },
-            {{48, 115, -25}, {116, 116, 132}, {117, 122, 20}, },
+            {{48, 115, -25}, {116, 116, 119}, {117, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 97, -94}, {98, 98, 133}, {99, 122, 20}, },
-            {{48, 113, -18}, {114, 114, 134}, {115, 122, 20}, },
-            {{48, 90, -8}, {97, 97, 135}, {98, 122, 20}, },
-            {{48, 101, -102}, {102, 102, 136}, {103, 122, 20}, },
-            {{48, 107, -28}, {108, 108, 137}, {109, 122, 20}, },
-            {{48, 98, -45}, {99, 99, 138}, {100, 122, 20}, },
-            {{48, 100, -32}, {101, 101, 139}, {102, 122, 20}, },
-            {{48, 104, -16}, {105, 105, 140}, {106, 122, 20}, },
-            {{48, 90, -8}, {97, 97, 141}, {98, 122, 20}, },
-            {{48, 110, -13}, {111, 111, 142}, {112, 122, 20}, },
-            {{48, 90, -8}, {97, 97, 143}, {98, 122, 20}, },
+            {{48, 109, -14}, {110, 110, 120}, {111, 122, 20}, },
+            {{48, 104, -16}, {105, 105, 121}, {106, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 99, -73}, {100, 100, 144}, {101, 122, 20}, },
-            {{48, 90, -8}, {97, 108, 20}, {109, 109, 145}, {110, 122, 20}, },
-            {{48, 98, -45}, {99, 99, 146}, {100, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 57, 20}, {65, 82, 20}, {83, 83, 147}, {84, 122, -67}, },
+            {{48, 109, -14}, {110, 110, 122}, {111, 122, 20}, },
+            {{48, 90, -8}, {97, 97, 20}, {98, 98, 123}, {99, 122, 20}, },
+            {{48, 113, -18}, {114, 114, 124}, {115, 122, 20}, },
+            {{48, 99, -74}, {100, 100, 125}, {101, 122, 20}, },
+            {{48, 99, -74}, {100, 100, 126}, {101, 122, 20}, },
+            {{48, 111, -31}, {112, 112, 127}, {113, 122, 20}, },
+            {{48, 90, -8}, {97, 117, 20}, {118, 118, 128}, {119, 122, 20}, },
+            {{48, 116, -17}, {117, 117, 129}, {118, 122, 20}, },
+            {{48, 116, -17}, {117, 117, 130}, {118, 122, 20}, },
+            {{48, 90, -8}, {97, 101, 20}, {102, 102, 131}, {103, 115, 20}, {116, 116, 132}, {117, 122, 20}, },
+            {{48, 113, -18}, {114, 114, 133}, {115, 122, 20}, },
+            {{48, 99, -74}, {100, 100, 134}, {101, 122, 20}, },
+            {{48, 107, -28}, {108, 108, 135}, {109, 122, 20}, },
+            {{48, 115, -25}, {116, 116, 136}, {117, 122, 20}, },
             {{48, 122, -8}, },
+            {{48, 97, -96}, {98, 98, 137}, {99, 122, 20}, },
+            {{48, 113, -18}, {114, 114, 138}, {115, 122, 20}, },
+            {{48, 90, -8}, {97, 97, 139}, {98, 122, 20}, },
+            {{48, 101, -104}, {102, 102, 140}, {103, 122, 20}, },
+            {{48, 107, -28}, {108, 108, 141}, {109, 122, 20}, },
+            {{48, 98, -45}, {99, 99, 142}, {100, 122, 20}, },
+            {{48, 100, -32}, {101, 101, 143}, {102, 122, 20}, },
+            {{48, 104, -16}, {105, 105, 144}, {106, 122, 20}, },
+            {{48, 90, -8}, {97, 97, 145}, {98, 122, 20}, },
+            {{48, 110, -13}, {111, 111, 146}, {112, 122, 20}, },
+            {{48, 90, -8}, {97, 97, 147}, {98, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 100, -32}, {101, 101, 148}, {102, 122, 20}, },
+            {{48, 99, -74}, {100, 100, 148}, {101, 122, 20}, },
+            {{48, 90, -8}, {97, 108, 20}, {109, 109, 149}, {110, 122, 20}, },
+            {{48, 98, -45}, {99, 99, 150}, {100, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 90, -8}, {97, 97, 149}, {98, 122, 20}, },
-            {{48, 119, -33}, {120, 120, 150}, {121, 122, 20}, },
+            {{48, 57, 20}, {65, 82, 20}, {83, 83, 151}, {84, 122, -68}, },
             {{48, 122, -8}, },
             {{48, 122, -8}, },
-            {{48, 100, -32}, {101, 101, 151}, {102, 122, 20}, },
-            {{48, 115, -25}, {116, 116, 152}, {117, 122, 20}, },
+            {{48, 100, -32}, {101, 101, 152}, {102, 122, 20}, },
             {{48, 122, -8}, },
+            {{48, 90, -8}, {97, 97, 153}, {98, 122, 20}, },
+            {{48, 119, -33}, {120, 120, 154}, {121, 122, 20}, },
             {{48, 122, -8}, },
             {{48, 122, -8}, },
-            {{48, 104, -16}, {105, 105, 153}, {106, 122, 20}, },
-            {{48, 101, -102}, {102, 102, 154}, {103, 122, 20}, },
-            {{48, 110, -13}, {111, 111, 155}, {112, 122, 20}, },
-            {{48, 113, -18}, {114, 114, 156}, {115, 122, 20}, },
+            {{48, 100, -32}, {101, 101, 155}, {102, 122, 20}, },
+            {{48, 116, -17}, {117, 117, 156}, {118, 122, 20}, },
             {{48, 115, -25}, {116, 116, 157}, {117, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 109, -14}, {110, 110, 158}, {111, 122, 20}, },
-            {{48, 109, -14}, {110, 110, 159}, {111, 122, 20}, },
-            {{48, 113, -18}, {114, 114, 160}, {115, 122, 20}, },
-            {{48, 104, -16}, {105, 105, 161}, {106, 122, 20}, },
-            {{48, 111, -31}, {112, 112, 162}, {113, 122, 20}, },
-            {{48, 122, -8}, },
-            {{48, 104, -16}, {105, 105, 163}, {106, 122, 20}, },
-            {{48, 107, -28}, {108, 108, 164}, {109, 122, 20}, },
-            {{48, 107, -28}, {108, 108, 165}, {109, 122, 20}, },
             {{48, 122, -8}, },
             {{48, 122, -8}, },
+            {{48, 104, -16}, {105, 105, 158}, {106, 122, 20}, },
+            {{48, 101, -104}, {102, 102, 159}, {103, 122, 20}, },
+            {{48, 110, -13}, {111, 111, 160}, {112, 122, 20}, },
+            {{48, 113, -18}, {114, 114, 161}, {115, 122, 20}, },
+            {{48, 115, -25}, {116, 116, 162}, {117, 122, 20}, },
             {{48, 122, -8}, },
+            {{48, 109, -14}, {110, 110, 163}, {111, 122, 20}, },
+            {{48, 109, -14}, {110, 110, 164}, {111, 122, 20}, },
+            {{48, 113, -18}, {114, 114, 165}, {115, 122, 20}, },
+            {{48, 104, -16}, {105, 105, 166}, {106, 122, 20}, },
+            {{48, 111, -31}, {112, 112, 167}, {113, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 100, -32}, {101, 101, 166}, {102, 122, 20}, },
-            {{48, 98, -45}, {99, 99, 167}, {100, 122, 20}, },
             {{48, 104, -16}, {105, 105, 168}, {106, 122, 20}, },
-            {{48, 110, -13}, {111, 111, 169}, {112, 122, 20}, },
-            {{48, 115, -25}, {116, 116, 170}, {117, 122, 20}, },
-            {{48, 98, -45}, {99, 99, 171}, {100, 122, 20}, },
+            {{48, 107, -28}, {108, 108, 169}, {109, 122, 20}, },
+            {{48, 107, -28}, {108, 108, 170}, {109, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 98, -45}, {99, 99, 172}, {100, 122, 20}, },
-            {{48, 107, -28}, {108, 108, 173}, {109, 122, 20}, },
-            {{48, 108, -120}, {109, 109, 174}, {110, 122, 20}, },
             {{48, 122, -8}, },
+            {{48, 107, -28}, {108, 108, 171}, {109, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 98, -45}, {99, 99, 175}, {100, 122, 20}, },
             {{48, 122, -8}, },
+            {{48, 100, -32}, {101, 101, 172}, {102, 122, 20}, },
+            {{48, 98, -45}, {99, 99, 173}, {100, 122, 20}, },
+            {{48, 104, -16}, {105, 105, 174}, {106, 122, 20}, },
+            {{48, 110, -13}, {111, 111, 175}, {112, 122, 20}, },
             {{48, 115, -25}, {116, 116, 176}, {117, 122, 20}, },
-            {{48, 116, -17}, {117, 117, 177}, {118, 122, 20}, },
-            {{48, 57, 20}, {65, 80, 20}, {81, 81, 178}, {82, 90, 20}, {97, 122, 20}, },
+            {{48, 98, -45}, {99, 99, 177}, {100, 122, 20}, },
+            {{48, 122, -8}, },
+            {{48, 98, -45}, {99, 99, 178}, {100, 122, 20}, },
+            {{48, 107, -28}, {108, 108, 179}, {109, 122, 20}, },
+            {{48, 108, -123}, {109, 109, 180}, {110, 122, 20}, },
+            {{48, 122, -8}, },
+            {{48, 122, -8}, },
+            {{48, 110, -13}, {111, 111, 181}, {112, 122, 20}, },
+            {{48, 98, -45}, {99, 99, 182}, {100, 122, 20}, },
+            {{48, 122, -8}, },
+            {{48, 115, -25}, {116, 116, 183}, {117, 122, 20}, },
+            {{48, 116, -17}, {117, 117, 184}, {118, 122, 20}, },
+            {{48, 57, 20}, {65, 80, 20}, {81, 81, 185}, {82, 90, 20}, {97, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 100, -32}, {101, 101, 179}, {102, 122, 20}, },
-            {{48, 100, -32}, {101, 101, 180}, {102, 122, 20}, },
-            {{48, 111, -31}, {112, 112, 181}, {113, 122, 20}, },
-            {{48, 115, -25}, {116, 116, 182}, {117, 122, 20}, },
-            {{48, 116, -17}, {117, 117, 183}, {118, 122, 20}, },
-            {{48, 113, -18}, {114, 114, 184}, {115, 122, 20}, },
-            {{48, 116, -17}, {117, 117, 185}, {118, 122, 20}, },
             {{48, 100, -32}, {101, 101, 186}, {102, 122, 20}, },
+            {{48, 100, -32}, {101, 101, 187}, {102, 122, 20}, },
+            {{48, 111, -31}, {112, 112, 188}, {113, 122, 20}, },
+            {{48, 122, -8}, },
+            {{48, 115, -25}, {116, 116, 189}, {117, 122, 20}, },
+            {{48, 116, -17}, {117, 117, 190}, {118, 122, 20}, },
+            {{48, 113, -18}, {114, 114, 191}, {115, 122, 20}, },
+            {{48, 116, -17}, {117, 117, 192}, {118, 122, 20}, },
+            {{48, 100, -32}, {101, 101, 193}, {102, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 107, -28}, {108, 108, 187}, {109, 122, 20}, },
+            {{48, 107, -28}, {108, 108, 194}, {109, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 113, -18}, {114, 114, 188}, {115, 122, 20}, },
+            {{48, 113, -18}, {114, 114, 195}, {115, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 100, -32}, {101, 101, 189}, {102, 122, 20}, },
+            {{48, 100, -32}, {101, 101, 196}, {102, 122, 20}, },
             {{48, 122, -8}, },
-            {{48, 100, -32}, {101, 101, 190}, {102, 122, 20}, },
-            {{48, 100, -32}, {101, 101, 191}, {102, 122, 20}, },
+            {{48, 100, -32}, {101, 101, 197}, {102, 122, 20}, },
+            {{48, 100, -32}, {101, 101, 198}, {102, 122, 20}, },
             {{48, 122, -8}, },
             {{48, 122, -8}, },
             {{48, 122, -8}, },
@@ -962,7 +991,7 @@ public class Lexer
     private static int[][] accept;
 /*  {
         // INITIAL
-        {-1, 0, 0, 0, 0, -1, 45, 2, 3, 44, 45, 45, 45, 45, 45, 45, 45, -1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 43, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 42, 45, 37, 39, 40, 38, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 32, 45, 34, 45, 45, 41, 4, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 20, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 33, 45, 45, 45, 6, 7, 9, 10, 45, 12, 45, 45, 15, 16, 45, 45, 19, 21, 22, 45, 45, 45, 45, 45, 28, 45, 45, 45, 45, 45, 5, 45, 45, 45, 14, 17, 18, 23, 45, 45, 45, 45, 45, 45, 31, 45, 45, 45, 11, 13, 45, 25, 45, 45, 45, 30, 45, 45, 45, 45, 45, 45, 45, 45, 36, 45, 24, 45, 27, 45, 35, 45, 45, 29, 8, 26, },
+        {-1, 0, 0, 0, 0, -1, 47, 2, 3, 46, 47, 47, 47, 47, 47, 47, 47, -1, 1, 1, 47, 47, 47, 47, 47, 47, 47, 47, 1, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 45, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 44, 47, 39, 41, 42, 40, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 26, 47, 47, 34, 47, 36, 47, 47, 43, 4, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 21, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 35, 47, 47, 47, 6, 7, 9, 10, 47, 12, 47, 47, 15, 16, 47, 47, 47, 20, 22, 23, 47, 47, 47, 47, 47, 30, 47, 47, 47, 47, 47, 5, 47, 47, 47, 14, 17, 47, 18, 24, 47, 47, 47, 47, 47, 47, 33, 47, 47, 47, 11, 13, 47, 47, 27, 47, 47, 47, 32, 47, 47, 47, 19, 47, 47, 47, 47, 47, 38, 47, 25, 47, 29, 47, 37, 47, 47, 31, 8, 28, },
 
     };*/
 
diff --git a/src/saParser/lexer/lexer.dat b/src/saParser/lexer/lexer.dat
index a1bd028415b0ad63a549525ba6dc4d3836c69934..5472df88c0000d4ff6e2f219d449246eb770387c 100644
Binary files a/src/saParser/lexer/lexer.dat and b/src/saParser/lexer/lexer.dat differ
diff --git a/src/saParser/parser/Parser.java b/src/saParser/parser/Parser.java
index 92c63c87635462d189d1c02011451300810569ac..efde8a11679eb6681b17029e6447ebf4fcf0b17f 100644
--- a/src/saParser/parser/Parser.java
+++ b/src/saParser/parser/Parser.java
@@ -240,210 +240,222 @@ public class Parser
                 push(goTo(1), list, false);
             }
             break;
-            case 7: /* reduce AOrExp */
+            case 7: /* reduce AModuloExp */
             {
                 ArrayList<Object> list = new7();
                 push(goTo(1), list, false);
             }
             break;
-            case 8: /* reduce ASubExp */
+            case 8: /* reduce AOrExp */
             {
                 ArrayList<Object> list = new8();
                 push(goTo(1), list, false);
             }
             break;
-            case 9: /* reduce ANotExp */
+            case 9: /* reduce ASubExp */
             {
                 ArrayList<Object> list = new9();
                 push(goTo(1), list, false);
             }
             break;
-            case 10: /* reduce AAppelExp */
+            case 10: /* reduce ANotExp */
             {
                 ArrayList<Object> list = new10();
                 push(goTo(1), list, false);
             }
             break;
-            case 11: /* reduce AVarExp */
+            case 11: /* reduce AAppelExp */
             {
                 ArrayList<Object> list = new11();
                 push(goTo(1), list, false);
             }
             break;
-            case 12: /* reduce AFauxExp */
+            case 12: /* reduce AVarExp */
             {
                 ArrayList<Object> list = new12();
                 push(goTo(1), list, false);
             }
             break;
-            case 13: /* reduce AVraiExp */
+            case 13: /* reduce AFauxExp */
             {
                 ArrayList<Object> list = new13();
                 push(goTo(1), list, false);
             }
             break;
-            case 14: /* reduce AIntExp */
+            case 14: /* reduce AVraiExp */
             {
                 ArrayList<Object> list = new14();
                 push(goTo(1), list, false);
             }
             break;
-            case 15: /* reduce ALireExp */
+            case 15: /* reduce AIntExp */
             {
                 ArrayList<Object> list = new15();
                 push(goTo(1), list, false);
             }
             break;
-            case 16: /* reduce AAffectInst */
+            case 16: /* reduce ALireExp */
             {
                 ArrayList<Object> list = new16();
-                push(goTo(2), list, false);
+                push(goTo(1), list, false);
             }
             break;
-            case 17: /* reduce ABlocInst */
+            case 17: /* reduce AAffectInst */
             {
                 ArrayList<Object> list = new17();
                 push(goTo(2), list, false);
             }
             break;
-            case 18: /* reduce AEcritureInst */
+            case 18: /* reduce AIncrInst */
             {
                 ArrayList<Object> list = new18();
                 push(goTo(2), list, false);
             }
             break;
-            case 19: /* reduce ARetourInst */
+            case 19: /* reduce ABlocInst */
             {
                 ArrayList<Object> list = new19();
                 push(goTo(2), list, false);
             }
             break;
-            case 20: /* reduce ASiInst */
+            case 20: /* reduce AEcritureInst */
             {
                 ArrayList<Object> list = new20();
                 push(goTo(2), list, false);
             }
             break;
-            case 21: /* reduce ASi2Inst */
+            case 21: /* reduce ARetourInst */
             {
                 ArrayList<Object> list = new21();
                 push(goTo(2), list, false);
             }
             break;
-            case 22: /* reduce ATantqueInst */
+            case 22: /* reduce ASiInst */
             {
                 ArrayList<Object> list = new22();
                 push(goTo(2), list, false);
             }
             break;
-            case 23: /* reduce AAppelInst */
+            case 23: /* reduce ASi2Inst */
             {
                 ArrayList<Object> list = new23();
                 push(goTo(2), list, false);
             }
             break;
-            case 24: /* reduce ARecLdecfonc */
+            case 24: /* reduce ATantqueInst */
             {
                 ArrayList<Object> list = new24();
-                push(goTo(3), list, false);
+                push(goTo(2), list, false);
             }
             break;
-            case 25: /* reduce AFinLdecfonc */
+            case 25: /* reduce AAppelInst */
             {
                 ArrayList<Object> list = new25();
-                push(goTo(3), list, false);
+                push(goTo(2), list, false);
             }
             break;
-            case 26: /* reduce ARecLdecvar */
+            case 26: /* reduce ARecLdecfonc */
             {
                 ArrayList<Object> list = new26();
-                push(goTo(4), list, false);
+                push(goTo(3), list, false);
             }
             break;
-            case 27: /* reduce AFinLdecvar */
+            case 27: /* reduce AFinLdecfonc */
             {
                 ArrayList<Object> list = new27();
-                push(goTo(4), list, false);
+                push(goTo(3), list, false);
             }
             break;
-            case 28: /* reduce ARecLexp */
+            case 28: /* reduce ARecLdecvar */
             {
                 ArrayList<Object> list = new28();
-                push(goTo(5), list, false);
+                push(goTo(4), list, false);
             }
             break;
-            case 29: /* reduce AFinLexp */
+            case 29: /* reduce AFinLdecvar */
             {
                 ArrayList<Object> list = new29();
-                push(goTo(5), list, false);
+                push(goTo(4), list, false);
             }
             break;
-            case 30: /* reduce ARecLinst */
+            case 30: /* reduce ARecLexp */
             {
                 ArrayList<Object> list = new30();
-                push(goTo(6), list, false);
+                push(goTo(5), list, false);
             }
             break;
-            case 31: /* reduce AFinLinst */
+            case 31: /* reduce AFinLexp */
             {
                 ArrayList<Object> list = new31();
-                push(goTo(6), list, false);
+                push(goTo(5), list, false);
             }
             break;
-            case 32: /* reduce ADecfonc */
+            case 32: /* reduce ARecLinst */
             {
                 ArrayList<Object> list = new32();
-                push(goTo(7), list, false);
+                push(goTo(6), list, false);
             }
             break;
-            case 33: /* reduce ATabDecvar */
+            case 33: /* reduce AFinLinst */
             {
                 ArrayList<Object> list = new33();
-                push(goTo(8), list, false);
+                push(goTo(6), list, false);
             }
             break;
-            case 34: /* reduce ASimpleDecvar */
+            case 34: /* reduce ADecfonc */
             {
                 ArrayList<Object> list = new34();
-                push(goTo(8), list, false);
+                push(goTo(7), list, false);
             }
             break;
-            case 35: /* reduce AIndiceeVar */
+            case 35: /* reduce ATabDecvar */
             {
                 ArrayList<Object> list = new35();
-                push(goTo(9), list, false);
+                push(goTo(8), list, false);
             }
             break;
-            case 36: /* reduce ASimpleVar */
+            case 36: /* reduce ASimpleDecvar */
             {
                 ArrayList<Object> list = new36();
-                push(goTo(9), list, false);
+                push(goTo(8), list, false);
             }
             break;
-            case 37: /* reduce AAppel */
+            case 37: /* reduce AIndiceeVar */
             {
                 ArrayList<Object> list = new37();
-                push(goTo(10), list, false);
+                push(goTo(9), list, false);
             }
             break;
-            case 38: /* reduce AEntierType */
+            case 38: /* reduce ASimpleVar */
             {
                 ArrayList<Object> list = new38();
-                push(goTo(11), list, false);
+                push(goTo(9), list, false);
             }
             break;
-            case 39: /* reduce ABoolType */
+            case 39: /* reduce AAppel */
             {
                 ArrayList<Object> list = new39();
-                push(goTo(11), list, false);
+                push(goTo(10), list, false);
             }
             break;
-            case 40: /* reduce ANullType */
+            case 40: /* reduce AEntierType */
             {
                 ArrayList<Object> list = new40();
                 push(goTo(11), list, false);
             }
             break;
+            case 41: /* reduce ABoolType */
+            {
+                ArrayList<Object> list = new41();
+                push(goTo(11), list, false);
+            }
+            break;
+            case 42: /* reduce ANullType */
+            {
+                ArrayList<Object> list = new42();
+                push(goTo(11), list, false);
+            }
+            break;
         }
     }
 
@@ -674,7 +686,39 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new7() /* reduce AOrExp */
+    ArrayList<Object> new7() /* reduce AModuloExp */
+    {
+        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
+
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
+        PExp pexpNode1;
+        {
+            // Block
+        TPo tpoNode2;
+        TSaexpmodulo tsaexpmoduloNode3;
+        PExp pexpNode4;
+        PExp pexpNode5;
+        TPf tpfNode6;
+        tpoNode2 = (TPo)nodeArrayList1.get(0);
+        tsaexpmoduloNode3 = (TSaexpmodulo)nodeArrayList2.get(0);
+        pexpNode4 = (PExp)nodeArrayList3.get(0);
+        pexpNode5 = (PExp)nodeArrayList4.get(0);
+        tpfNode6 = (TPf)nodeArrayList5.get(0);
+
+        pexpNode1 = new AModuloExp(tpoNode2, tsaexpmoduloNode3, pexpNode4, pexpNode5, tpfNode6);
+        }
+	nodeList.add(pexpNode1);
+        return nodeList;
+    }
+
+
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    ArrayList<Object> new8() /* reduce AOrExp */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -706,7 +750,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new8() /* reduce ASubExp */
+    ArrayList<Object> new9() /* reduce ASubExp */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -738,7 +782,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new9() /* reduce ANotExp */
+    ArrayList<Object> new10() /* reduce ANotExp */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -767,7 +811,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new10() /* reduce AAppelExp */
+    ArrayList<Object> new11() /* reduce AAppelExp */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -796,7 +840,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new11() /* reduce AVarExp */
+    ArrayList<Object> new12() /* reduce AVarExp */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -825,7 +869,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new12() /* reduce AFauxExp */
+    ArrayList<Object> new13() /* reduce AFauxExp */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -845,7 +889,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new13() /* reduce AVraiExp */
+    ArrayList<Object> new14() /* reduce AVraiExp */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -865,7 +909,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new14() /* reduce AIntExp */
+    ArrayList<Object> new15() /* reduce AIntExp */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -885,7 +929,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new15() /* reduce ALireExp */
+    ArrayList<Object> new16() /* reduce ALireExp */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -905,7 +949,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new16() /* reduce AAffectInst */
+    ArrayList<Object> new17() /* reduce AAffectInst */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -937,7 +981,39 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new17() /* reduce ABlocInst */
+    ArrayList<Object> new18() /* reduce AIncrInst */
+    {
+        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
+
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
+        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
+        PInst pinstNode1;
+        {
+            // Block
+        TPo tpoNode2;
+        TSaincr tsaincrNode3;
+        PVar pvarNode4;
+        PExp pexpNode5;
+        TPf tpfNode6;
+        tpoNode2 = (TPo)nodeArrayList1.get(0);
+        tsaincrNode3 = (TSaincr)nodeArrayList2.get(0);
+        pvarNode4 = (PVar)nodeArrayList3.get(0);
+        pexpNode5 = (PExp)nodeArrayList4.get(0);
+        tpfNode6 = (TPf)nodeArrayList5.get(0);
+
+        pinstNode1 = new AIncrInst(tpoNode2, tsaincrNode3, pvarNode4, pexpNode5, tpfNode6);
+        }
+	nodeList.add(pinstNode1);
+        return nodeList;
+    }
+
+
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    ArrayList<Object> new19() /* reduce ABlocInst */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -966,7 +1042,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new18() /* reduce AEcritureInst */
+    ArrayList<Object> new20() /* reduce AEcritureInst */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -995,7 +1071,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new19() /* reduce ARetourInst */
+    ArrayList<Object> new21() /* reduce ARetourInst */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1024,7 +1100,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new20() /* reduce ASiInst */
+    ArrayList<Object> new22() /* reduce ASiInst */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1059,7 +1135,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new21() /* reduce ASi2Inst */
+    ArrayList<Object> new23() /* reduce ASi2Inst */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1094,7 +1170,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new22() /* reduce ATantqueInst */
+    ArrayList<Object> new24() /* reduce ATantqueInst */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1126,7 +1202,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new23() /* reduce AAppelInst */
+    ArrayList<Object> new25() /* reduce AAppelInst */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1146,7 +1222,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new24() /* reduce ARecLdecfonc */
+    ArrayList<Object> new26() /* reduce ARecLdecfonc */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1178,7 +1254,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new25() /* reduce AFinLdecfonc */
+    ArrayList<Object> new27() /* reduce AFinLdecfonc */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1198,7 +1274,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new26() /* reduce ARecLdecvar */
+    ArrayList<Object> new28() /* reduce ARecLdecvar */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1230,7 +1306,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new27() /* reduce AFinLdecvar */
+    ArrayList<Object> new29() /* reduce AFinLdecvar */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1250,7 +1326,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new28() /* reduce ARecLexp */
+    ArrayList<Object> new30() /* reduce ARecLexp */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1282,7 +1358,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new29() /* reduce AFinLexp */
+    ArrayList<Object> new31() /* reduce AFinLexp */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1302,7 +1378,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new30() /* reduce ARecLinst */
+    ArrayList<Object> new32() /* reduce ARecLinst */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1334,7 +1410,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new31() /* reduce AFinLinst */
+    ArrayList<Object> new33() /* reduce AFinLinst */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1354,7 +1430,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new32() /* reduce ADecfonc */
+    ArrayList<Object> new34() /* reduce ADecfonc */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1395,7 +1471,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new33() /* reduce ATabDecvar */
+    ArrayList<Object> new35() /* reduce ATabDecvar */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1430,7 +1506,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new34() /* reduce ASimpleDecvar */
+    ArrayList<Object> new36() /* reduce ASimpleDecvar */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1462,7 +1538,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new35() /* reduce AIndiceeVar */
+    ArrayList<Object> new37() /* reduce AIndiceeVar */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1494,7 +1570,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new36() /* reduce ASimpleVar */
+    ArrayList<Object> new38() /* reduce ASimpleVar */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1523,7 +1599,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new37() /* reduce AAppel */
+    ArrayList<Object> new39() /* reduce AAppel */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1555,7 +1631,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new38() /* reduce AEntierType */
+    ArrayList<Object> new40() /* reduce AEntierType */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1575,7 +1651,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new39() /* reduce ABoolType */
+    ArrayList<Object> new41() /* reduce ABoolType */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1595,7 +1671,7 @@ public class Parser
 
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    ArrayList<Object> new40() /* reduce ANullType */
+    ArrayList<Object> new42() /* reduce ANullType */
     {
         @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();
 
@@ -1617,133 +1693,140 @@ public class Parser
     private static int[][][] actionTable;
 /*      {
 			{{-1, ERROR, 0}, {0, SHIFT, 1}, },
-			{{-1, ERROR, 1}, {32, SHIFT, 3}, },
-			{{-1, ERROR, 2}, {44, ACCEPT, -1}, },
-			{{-1, ERROR, 3}, {0, SHIFT, 4}, {38, SHIFT, 5}, },
-			{{-1, ERROR, 4}, {29, SHIFT, 7}, },
-			{{-1, REDUCE, 27}, },
-			{{-1, ERROR, 6}, {0, SHIFT, 8}, {38, SHIFT, 9}, },
+			{{-1, ERROR, 1}, {34, SHIFT, 3}, },
+			{{-1, ERROR, 2}, {46, ACCEPT, -1}, },
+			{{-1, ERROR, 3}, {0, SHIFT, 4}, {40, SHIFT, 5}, },
+			{{-1, ERROR, 4}, {31, SHIFT, 7}, },
+			{{-1, REDUCE, 29}, },
+			{{-1, ERROR, 6}, {0, SHIFT, 8}, {40, SHIFT, 9}, },
 			{{-1, ERROR, 7}, {0, SHIFT, 11}, },
-			{{-1, ERROR, 8}, {28, SHIFT, 13}, },
-			{{-1, REDUCE, 25}, },
+			{{-1, ERROR, 8}, {30, SHIFT, 13}, },
+			{{-1, REDUCE, 27}, },
 			{{-1, ERROR, 10}, {1, SHIFT, 14}, },
 			{{-1, ERROR, 11}, {4, SHIFT, 15}, {6, SHIFT, 16}, },
-			{{-1, ERROR, 12}, {0, SHIFT, 4}, {38, SHIFT, 5}, },
+			{{-1, ERROR, 12}, {0, SHIFT, 4}, {40, SHIFT, 5}, },
 			{{-1, ERROR, 13}, {0, SHIFT, 18}, },
 			{{-1, REDUCE, 0}, },
-			{{-1, ERROR, 15}, {43, SHIFT, 20}, },
-			{{-1, ERROR, 16}, {43, SHIFT, 21}, },
+			{{-1, ERROR, 15}, {45, SHIFT, 20}, },
+			{{-1, ERROR, 16}, {45, SHIFT, 21}, },
 			{{-1, ERROR, 17}, {1, SHIFT, 22}, },
 			{{-1, ERROR, 18}, {3, SHIFT, 23}, },
-			{{-1, ERROR, 19}, {0, SHIFT, 8}, {38, SHIFT, 9}, },
-			{{-1, ERROR, 20}, {39, SHIFT, 25}, {40, SHIFT, 26}, {41, SHIFT, 27}, },
-			{{-1, ERROR, 21}, {39, SHIFT, 25}, {40, SHIFT, 26}, {41, SHIFT, 27}, },
-			{{-1, REDUCE, 26}, },
-			{{-1, ERROR, 23}, {43, SHIFT, 30}, },
+			{{-1, ERROR, 19}, {0, SHIFT, 8}, {40, SHIFT, 9}, },
+			{{-1, ERROR, 20}, {41, SHIFT, 25}, {42, SHIFT, 26}, {43, SHIFT, 27}, },
+			{{-1, ERROR, 21}, {41, SHIFT, 25}, {42, SHIFT, 26}, {43, SHIFT, 27}, },
+			{{-1, REDUCE, 28}, },
+			{{-1, ERROR, 23}, {45, SHIFT, 30}, },
 			{{-1, ERROR, 24}, {1, SHIFT, 31}, },
-			{{-1, REDUCE, 38}, },
-			{{-1, REDUCE, 39}, },
 			{{-1, REDUCE, 40}, },
-			{{-1, ERROR, 28}, {42, SHIFT, 32}, },
+			{{-1, REDUCE, 41}, },
+			{{-1, REDUCE, 42}, },
+			{{-1, ERROR, 28}, {44, SHIFT, 32}, },
 			{{-1, ERROR, 29}, {1, SHIFT, 33}, },
-			{{-1, ERROR, 30}, {39, SHIFT, 25}, {40, SHIFT, 26}, {41, SHIFT, 27}, },
-			{{-1, REDUCE, 24}, },
+			{{-1, ERROR, 30}, {41, SHIFT, 25}, {42, SHIFT, 26}, {43, SHIFT, 27}, },
+			{{-1, REDUCE, 26}, },
 			{{-1, ERROR, 32}, {1, SHIFT, 35}, },
+			{{-1, REDUCE, 36}, },
+			{{-1, ERROR, 34}, {0, SHIFT, 4}, {40, SHIFT, 5}, },
+			{{-1, REDUCE, 35}, },
+			{{-1, ERROR, 36}, {0, SHIFT, 4}, {40, SHIFT, 5}, },
+			{{-1, ERROR, 37}, {0, SHIFT, 38}, },
+			{{-1, ERROR, 38}, {2, SHIFT, 41}, {23, SHIFT, 42}, {24, SHIFT, 43}, {25, SHIFT, 44}, {26, SHIFT, 45}, {27, SHIFT, 46}, {28, SHIFT, 47}, {29, SHIFT, 48}, },
+			{{-1, ERROR, 39}, {1, SHIFT, 49}, },
+			{{-1, REDUCE, 25}, },
+			{{-1, ERROR, 41}, {45, SHIFT, 50}, },
+			{{-1, ERROR, 42}, {0, SHIFT, 51}, },
+			{{-1, ERROR, 43}, {0, SHIFT, 51}, },
+			{{-1, ERROR, 44}, {0, SHIFT, 54}, {40, SHIFT, 55}, },
+			{{-1, ERROR, 45}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 46}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 47}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 48}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
 			{{-1, REDUCE, 34}, },
-			{{-1, ERROR, 34}, {0, SHIFT, 4}, {38, SHIFT, 5}, },
+			{{-1, ERROR, 50}, {0, SHIFT, 66}, {40, SHIFT, 67}, },
+			{{-1, ERROR, 51}, {35, SHIFT, 69}, {36, SHIFT, 70}, },
+			{{-1, ERROR, 52}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 53}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 54}, {33, SHIFT, 73}, },
 			{{-1, REDUCE, 33}, },
-			{{-1, ERROR, 36}, {0, SHIFT, 4}, {38, SHIFT, 5}, },
-			{{-1, ERROR, 37}, {0, SHIFT, 38}, },
-			{{-1, ERROR, 38}, {2, SHIFT, 41}, {22, SHIFT, 42}, {23, SHIFT, 43}, {24, SHIFT, 44}, {25, SHIFT, 45}, {26, SHIFT, 46}, {27, SHIFT, 47}, },
-			{{-1, ERROR, 39}, {1, SHIFT, 48}, },
-			{{-1, REDUCE, 23}, },
-			{{-1, ERROR, 41}, {43, SHIFT, 49}, },
-			{{-1, ERROR, 42}, {0, SHIFT, 50}, },
-			{{-1, ERROR, 43}, {0, SHIFT, 52}, {38, SHIFT, 53}, },
-			{{-1, ERROR, 44}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 45}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 46}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 47}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, REDUCE, 32}, },
-			{{-1, ERROR, 49}, {0, SHIFT, 64}, {38, SHIFT, 65}, },
-			{{-1, ERROR, 50}, {33, SHIFT, 67}, {34, SHIFT, 68}, },
-			{{-1, ERROR, 51}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 52}, {31, SHIFT, 70}, },
-			{{-1, REDUCE, 31}, },
-			{{-1, ERROR, 54}, {1, SHIFT, 71}, },
-			{{-1, ERROR, 55}, {7, SHIFT, 72}, {8, SHIFT, 73}, {9, SHIFT, 74}, {10, SHIFT, 75}, {11, SHIFT, 76}, {13, SHIFT, 77}, {16, SHIFT, 78}, {17, SHIFT, 79}, {18, SHIFT, 80}, {19, SHIFT, 81}, {20, SHIFT, 82}, },
-			{{-1, REDUCE, 12}, },
+			{{-1, ERROR, 56}, {1, SHIFT, 74}, },
+			{{-1, ERROR, 57}, {7, SHIFT, 75}, {8, SHIFT, 76}, {9, SHIFT, 77}, {10, SHIFT, 78}, {11, SHIFT, 79}, {13, SHIFT, 80}, {16, SHIFT, 81}, {17, SHIFT, 82}, {18, SHIFT, 83}, {19, SHIFT, 84}, {20, SHIFT, 85}, {21, SHIFT, 86}, },
 			{{-1, REDUCE, 13}, },
-			{{-1, REDUCE, 15}, },
 			{{-1, REDUCE, 14}, },
-			{{-1, ERROR, 60}, {1, SHIFT, 83}, },
-			{{-1, ERROR, 61}, {1, SHIFT, 84}, },
-			{{-1, ERROR, 62}, {0, SHIFT, 38}, },
-			{{-1, ERROR, 63}, {0, SHIFT, 38}, },
-			{{-1, ERROR, 64}, {30, SHIFT, 87}, },
-			{{-1, REDUCE, 29}, },
-			{{-1, ERROR, 66}, {1, SHIFT, 88}, },
-			{{-1, ERROR, 67}, {43, SHIFT, 89}, },
-			{{-1, ERROR, 68}, {43, SHIFT, 90}, },
-			{{-1, ERROR, 69}, {1, SHIFT, 91}, },
-			{{-1, ERROR, 70}, {0, SHIFT, 38}, },
+			{{-1, REDUCE, 16}, },
+			{{-1, REDUCE, 15}, },
+			{{-1, ERROR, 62}, {1, SHIFT, 87}, },
+			{{-1, ERROR, 63}, {1, SHIFT, 88}, },
+			{{-1, ERROR, 64}, {0, SHIFT, 38}, },
+			{{-1, ERROR, 65}, {0, SHIFT, 38}, },
+			{{-1, ERROR, 66}, {32, SHIFT, 91}, },
+			{{-1, REDUCE, 31}, },
+			{{-1, ERROR, 68}, {1, SHIFT, 92}, },
+			{{-1, ERROR, 69}, {45, SHIFT, 93}, },
+			{{-1, ERROR, 70}, {45, SHIFT, 94}, },
+			{{-1, ERROR, 71}, {1, SHIFT, 95}, },
+			{{-1, ERROR, 72}, {1, SHIFT, 96}, },
+			{{-1, ERROR, 73}, {0, SHIFT, 38}, },
+			{{-1, REDUCE, 19}, },
+			{{-1, ERROR, 75}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 76}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 77}, {0, SHIFT, 100}, },
+			{{-1, ERROR, 78}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 79}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 80}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 81}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 82}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 83}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 84}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 85}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 86}, {0, SHIFT, 51}, },
+			{{-1, REDUCE, 20}, },
+			{{-1, REDUCE, 21}, },
+			{{-1, ERROR, 89}, {0, SHIFT, 38}, {40, SHIFT, 111}, },
+			{{-1, ERROR, 90}, {1, SHIFT, 113}, },
+			{{-1, ERROR, 91}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, REDUCE, 39}, },
+			{{-1, ERROR, 93}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 94}, {1, SHIFT, 116}, },
 			{{-1, REDUCE, 17}, },
-			{{-1, ERROR, 72}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 73}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 74}, {0, SHIFT, 95}, },
-			{{-1, ERROR, 75}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 76}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 77}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 78}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 79}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 80}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 81}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 82}, {0, SHIFT, 50}, },
 			{{-1, REDUCE, 18}, },
-			{{-1, REDUCE, 19}, },
-			{{-1, ERROR, 85}, {0, SHIFT, 38}, {38, SHIFT, 105}, },
-			{{-1, ERROR, 86}, {1, SHIFT, 107}, },
-			{{-1, ERROR, 87}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, REDUCE, 37}, },
-			{{-1, ERROR, 89}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 90}, {1, SHIFT, 110}, },
-			{{-1, REDUCE, 16}, },
-			{{-1, ERROR, 92}, {0, SHIFT, 52}, {38, SHIFT, 53}, },
-			{{-1, ERROR, 93}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 94}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 95}, {2, SHIFT, 41}, },
-			{{-1, ERROR, 96}, {1, SHIFT, 114}, },
-			{{-1, ERROR, 97}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 98}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 99}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 100}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 101}, {1, SHIFT, 119}, },
-			{{-1, ERROR, 102}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 103}, {0, SHIFT, 55}, {35, SHIFT, 56}, {36, SHIFT, 57}, {37, SHIFT, 58}, {42, SHIFT, 59}, },
-			{{-1, ERROR, 104}, {1, SHIFT, 122}, },
-			{{-1, ERROR, 105}, {1, SHIFT, 123}, },
-			{{-1, ERROR, 106}, {1, SHIFT, 124}, },
-			{{-1, REDUCE, 22}, },
-			{{-1, ERROR, 108}, {0, SHIFT, 64}, {38, SHIFT, 65}, },
-			{{-1, ERROR, 109}, {1, SHIFT, 126}, },
-			{{-1, REDUCE, 36}, },
-			{{-1, ERROR, 111}, {1, SHIFT, 127}, },
-			{{-1, ERROR, 112}, {1, SHIFT, 128}, },
-			{{-1, ERROR, 113}, {1, SHIFT, 129}, },
-			{{-1, REDUCE, 10}, },
-			{{-1, ERROR, 115}, {1, SHIFT, 130}, },
-			{{-1, ERROR, 116}, {1, SHIFT, 131}, },
-			{{-1, ERROR, 117}, {1, SHIFT, 132}, },
-			{{-1, ERROR, 118}, {1, SHIFT, 133}, },
-			{{-1, REDUCE, 9}, },
-			{{-1, ERROR, 120}, {1, SHIFT, 134}, },
-			{{-1, ERROR, 121}, {1, SHIFT, 135}, },
+			{{-1, ERROR, 97}, {0, SHIFT, 54}, {40, SHIFT, 55}, },
+			{{-1, ERROR, 98}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 99}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 100}, {2, SHIFT, 41}, },
+			{{-1, ERROR, 101}, {1, SHIFT, 120}, },
+			{{-1, ERROR, 102}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 103}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 104}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 105}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 106}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 107}, {1, SHIFT, 126}, },
+			{{-1, ERROR, 108}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 109}, {0, SHIFT, 57}, {37, SHIFT, 58}, {38, SHIFT, 59}, {39, SHIFT, 60}, {44, SHIFT, 61}, },
+			{{-1, ERROR, 110}, {1, SHIFT, 129}, },
+			{{-1, ERROR, 111}, {1, SHIFT, 130}, },
+			{{-1, ERROR, 112}, {1, SHIFT, 131}, },
+			{{-1, REDUCE, 24}, },
+			{{-1, ERROR, 114}, {0, SHIFT, 66}, {40, SHIFT, 67}, },
+			{{-1, ERROR, 115}, {1, SHIFT, 133}, },
+			{{-1, REDUCE, 38}, },
+			{{-1, ERROR, 117}, {1, SHIFT, 134}, },
+			{{-1, ERROR, 118}, {1, SHIFT, 135}, },
+			{{-1, ERROR, 119}, {1, SHIFT, 136}, },
 			{{-1, REDUCE, 11}, },
-			{{-1, REDUCE, 21}, },
-			{{-1, REDUCE, 20}, },
-			{{-1, ERROR, 125}, {1, SHIFT, 136}, },
-			{{-1, REDUCE, 35}, },
-			{{-1, REDUCE, 30}, },
+			{{-1, ERROR, 121}, {1, SHIFT, 137}, },
+			{{-1, ERROR, 122}, {1, SHIFT, 138}, },
+			{{-1, ERROR, 123}, {1, SHIFT, 139}, },
+			{{-1, ERROR, 124}, {1, SHIFT, 140}, },
+			{{-1, ERROR, 125}, {1, SHIFT, 141}, },
+			{{-1, REDUCE, 10}, },
+			{{-1, ERROR, 127}, {1, SHIFT, 142}, },
+			{{-1, ERROR, 128}, {1, SHIFT, 143}, },
+			{{-1, REDUCE, 12}, },
+			{{-1, REDUCE, 23}, },
+			{{-1, REDUCE, 22}, },
+			{{-1, ERROR, 132}, {1, SHIFT, 144}, },
+			{{-1, REDUCE, 37}, },
+			{{-1, REDUCE, 32}, },
 			{{-1, REDUCE, 1}, },
 			{{-1, REDUCE, 2}, },
 			{{-1, REDUCE, 3}, },
@@ -1752,21 +1835,22 @@ public class Parser
 			{{-1, REDUCE, 6}, },
 			{{-1, REDUCE, 7}, },
 			{{-1, REDUCE, 8}, },
-			{{-1, REDUCE, 28}, },
+			{{-1, REDUCE, 9}, },
+			{{-1, REDUCE, 30}, },
         };*/
     private static int[][][] gotoTable;
 /*      {
 			{{-1, 2}, },
-			{{-1, 60}, {45, 61}, {46, 62}, {47, 63}, {51, 69}, {72, 93}, {73, 94}, {75, 97}, {76, 98}, {77, 99}, {78, 100}, {79, 101}, {80, 102}, {81, 103}, {87, 108}, {89, 109}, {93, 112}, {94, 113}, {97, 115}, {98, 116}, {99, 117}, {100, 118}, {102, 120}, {103, 121}, },
-			{{-1, 39}, {62, 85}, {63, 86}, {70, 92}, {85, 106}, },
+			{{-1, 62}, {46, 63}, {47, 64}, {48, 65}, {52, 71}, {53, 72}, {75, 98}, {76, 99}, {78, 102}, {79, 103}, {80, 104}, {81, 105}, {82, 106}, {83, 107}, {84, 108}, {85, 109}, {91, 114}, {93, 115}, {98, 118}, {99, 119}, {102, 121}, {103, 122}, {104, 123}, {105, 124}, {106, 125}, {108, 127}, {109, 128}, },
+			{{-1, 39}, {64, 89}, {65, 90}, {73, 97}, {89, 112}, },
 			{{-1, 10}, {19, 24}, },
 			{{-1, 6}, {12, 17}, {34, 36}, {36, 37}, },
-			{{-1, 66}, {108, 125}, },
-			{{-1, 54}, {92, 111}, },
+			{{-1, 68}, {114, 132}, },
+			{{-1, 56}, {97, 117}, },
 			{{-1, 19}, },
 			{{-1, 12}, },
-			{{-1, 51}, {82, 104}, },
-			{{-1, 40}, {74, 96}, },
+			{{-1, 52}, {43, 53}, {86, 110}, },
+			{{-1, 40}, {77, 101}, },
 			{{-1, 28}, {21, 29}, {30, 34}, },
         };*/
     private static String[] errorMessages;
@@ -1785,11 +1869,11 @@ public class Parser
 			"expecting: 'entier', 'bool', 'nul'",
 			"expecting: '(', ')', 'null', integer",
 			"expecting: integer",
-			"expecting: 'SaAppel', 'SaInstAffect', 'SaInstBloc', 'SaInstEcriture', 'SaInstRetour', 'SaInstSi', 'SaInstTantQue'",
+			"expecting: 'SaAppel', 'SaInstAffect', 'SaIncr', 'SaInstBloc', 'SaInstEcriture', 'SaInstRetour', 'SaInstSi', 'SaInstTantQue'",
 			"expecting: '(', 'faux', 'vrai', 'lire', integer",
 			"expecting: 'SaVarIndicee', 'SaVarSimple'",
 			"expecting: 'SaLInst'",
-			"expecting: 'SaExpAdd', 'SaExpAnd', 'SaExpAppel', 'SaExpDiv', 'SaExpEqual', 'SaExpInf', 'SaExpMult', 'SaExpNot', 'SaExpOr', 'SaExpSub', 'SaExpVar'",
+			"expecting: 'SaExpAdd', 'SaExpAnd', 'SaExpAppel', 'SaExpDiv', 'SaExpEqual', 'SaExpInf', 'SaExpMult', 'SaExpModulo', 'SaExpNot', 'SaExpOr', 'SaExpSub', 'SaExpVar'",
 			"expecting: '(', ')', 'faux', 'vrai', 'lire', 'null', integer",
 			"expecting: 'SaLExp'",
 			"expecting: 'SaAppel'",
@@ -1797,7 +1881,7 @@ public class Parser
         };*/
     private static int[] errors;
 /*      {
-			0, 1, 2, 3, 4, 5, 3, 0, 6, 7, 7, 8, 3, 0, 2, 9, 9, 7, 10, 3, 11, 11, 5, 9, 7, 12, 12, 12, 13, 7, 11, 7, 7, 3, 3, 3, 3, 0, 14, 7, 5, 9, 0, 3, 15, 15, 15, 15, 3, 3, 16, 15, 17, 7, 7, 18, 19, 19, 19, 19, 7, 7, 0, 0, 20, 7, 7, 9, 9, 7, 0, 5, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 5, 5, 3, 7, 15, 5, 15, 7, 5, 3, 15, 15, 21, 7, 15, 15, 15, 15, 7, 15, 15, 7, 7, 7, 5, 3, 7, 22, 7, 7, 7, 19, 7, 7, 7, 7, 19, 7, 7, 19, 5, 5, 7, 22, 7, 19, 19, 19, 19, 19, 19, 19, 19, 7, 
+			0, 1, 2, 3, 4, 5, 3, 0, 6, 7, 7, 8, 3, 0, 2, 9, 9, 7, 10, 3, 11, 11, 5, 9, 7, 12, 12, 12, 13, 7, 11, 7, 7, 3, 3, 3, 3, 0, 14, 7, 5, 9, 0, 0, 3, 15, 15, 15, 15, 3, 3, 16, 15, 15, 17, 7, 7, 18, 19, 19, 19, 19, 7, 7, 0, 0, 20, 7, 7, 9, 9, 7, 7, 0, 5, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 0, 5, 5, 3, 7, 15, 5, 15, 7, 5, 5, 3, 15, 15, 21, 7, 15, 15, 15, 15, 15, 7, 15, 15, 7, 7, 7, 5, 3, 7, 22, 7, 7, 7, 19, 7, 7, 7, 7, 7, 19, 7, 7, 19, 5, 5, 7, 22, 7, 19, 19, 19, 19, 19, 19, 19, 19, 19, 7, 
         };*/
 
     static 
diff --git a/src/saParser/parser/TokenIndex.java b/src/saParser/parser/TokenIndex.java
index c7c5f320853ff37760678a70f098126a2a058aa7..9e14b98f58738468108b8cc1bd41fba414d242ee 100644
--- a/src/saParser/parser/TokenIndex.java
+++ b/src/saParser/parser/TokenIndex.java
@@ -112,170 +112,182 @@ class TokenIndex extends AnalysisAdapter
     }
 
     @Override
-    public void caseTSaexpnot(@SuppressWarnings("unused") TSaexpnot node)
+    public void caseTSaexpmodulo(@SuppressWarnings("unused") TSaexpmodulo node)
     {
         this.index = 17;
     }
 
     @Override
-    public void caseTSaexpor(@SuppressWarnings("unused") TSaexpor node)
+    public void caseTSaexpnot(@SuppressWarnings("unused") TSaexpnot node)
     {
         this.index = 18;
     }
 
     @Override
-    public void caseTSaexpsub(@SuppressWarnings("unused") TSaexpsub node)
+    public void caseTSaexpor(@SuppressWarnings("unused") TSaexpor node)
     {
         this.index = 19;
     }
 
     @Override
-    public void caseTSaexpvar(@SuppressWarnings("unused") TSaexpvar node)
+    public void caseTSaexpsub(@SuppressWarnings("unused") TSaexpsub node)
     {
         this.index = 20;
     }
 
     @Override
-    public void caseTSaexpvrai(@SuppressWarnings("unused") TSaexpvrai node)
+    public void caseTSaexpvar(@SuppressWarnings("unused") TSaexpvar node)
     {
         this.index = 21;
     }
 
     @Override
-    public void caseTSainstaffect(@SuppressWarnings("unused") TSainstaffect node)
+    public void caseTSaexpvrai(@SuppressWarnings("unused") TSaexpvrai node)
     {
         this.index = 22;
     }
 
     @Override
-    public void caseTSainstbloc(@SuppressWarnings("unused") TSainstbloc node)
+    public void caseTSainstaffect(@SuppressWarnings("unused") TSainstaffect node)
     {
         this.index = 23;
     }
 
     @Override
-    public void caseTSainstecriture(@SuppressWarnings("unused") TSainstecriture node)
+    public void caseTSaincr(@SuppressWarnings("unused") TSaincr node)
     {
         this.index = 24;
     }
 
     @Override
-    public void caseTSainstretour(@SuppressWarnings("unused") TSainstretour node)
+    public void caseTSainstbloc(@SuppressWarnings("unused") TSainstbloc node)
     {
         this.index = 25;
     }
 
     @Override
-    public void caseTSainstsi(@SuppressWarnings("unused") TSainstsi node)
+    public void caseTSainstecriture(@SuppressWarnings("unused") TSainstecriture node)
     {
         this.index = 26;
     }
 
     @Override
-    public void caseTSainsttantque(@SuppressWarnings("unused") TSainsttantque node)
+    public void caseTSainstretour(@SuppressWarnings("unused") TSainstretour node)
     {
         this.index = 27;
     }
 
     @Override
-    public void caseTSaldecfonc(@SuppressWarnings("unused") TSaldecfonc node)
+    public void caseTSainstsi(@SuppressWarnings("unused") TSainstsi node)
     {
         this.index = 28;
     }
 
     @Override
-    public void caseTSaldecvar(@SuppressWarnings("unused") TSaldecvar node)
+    public void caseTSainsttantque(@SuppressWarnings("unused") TSainsttantque node)
     {
         this.index = 29;
     }
 
     @Override
-    public void caseTSalexp(@SuppressWarnings("unused") TSalexp node)
+    public void caseTSaldecfonc(@SuppressWarnings("unused") TSaldecfonc node)
     {
         this.index = 30;
     }
 
     @Override
-    public void caseTSalinst(@SuppressWarnings("unused") TSalinst node)
+    public void caseTSaldecvar(@SuppressWarnings("unused") TSaldecvar node)
     {
         this.index = 31;
     }
 
     @Override
-    public void caseTSaprog(@SuppressWarnings("unused") TSaprog node)
+    public void caseTSalexp(@SuppressWarnings("unused") TSalexp node)
     {
         this.index = 32;
     }
 
     @Override
-    public void caseTSavarindicee(@SuppressWarnings("unused") TSavarindicee node)
+    public void caseTSalinst(@SuppressWarnings("unused") TSalinst node)
     {
         this.index = 33;
     }
 
     @Override
-    public void caseTSavarsimple(@SuppressWarnings("unused") TSavarsimple node)
+    public void caseTSaprog(@SuppressWarnings("unused") TSaprog node)
     {
         this.index = 34;
     }
 
     @Override
-    public void caseTFaux(@SuppressWarnings("unused") TFaux node)
+    public void caseTSavarindicee(@SuppressWarnings("unused") TSavarindicee node)
     {
         this.index = 35;
     }
 
     @Override
-    public void caseTVrai(@SuppressWarnings("unused") TVrai node)
+    public void caseTSavarsimple(@SuppressWarnings("unused") TSavarsimple node)
     {
         this.index = 36;
     }
 
     @Override
-    public void caseTLire(@SuppressWarnings("unused") TLire node)
+    public void caseTFaux(@SuppressWarnings("unused") TFaux node)
     {
         this.index = 37;
     }
 
     @Override
-    public void caseTNull(@SuppressWarnings("unused") TNull node)
+    public void caseTVrai(@SuppressWarnings("unused") TVrai node)
     {
         this.index = 38;
     }
 
     @Override
-    public void caseTEntier(@SuppressWarnings("unused") TEntier node)
+    public void caseTLire(@SuppressWarnings("unused") TLire node)
     {
         this.index = 39;
     }
 
     @Override
-    public void caseTBool(@SuppressWarnings("unused") TBool node)
+    public void caseTNull(@SuppressWarnings("unused") TNull node)
     {
         this.index = 40;
     }
 
     @Override
-    public void caseTNul(@SuppressWarnings("unused") TNul node)
+    public void caseTEntier(@SuppressWarnings("unused") TEntier node)
     {
         this.index = 41;
     }
 
     @Override
-    public void caseTInteger(@SuppressWarnings("unused") TInteger node)
+    public void caseTBool(@SuppressWarnings("unused") TBool node)
     {
         this.index = 42;
     }
 
     @Override
-    public void caseTId(@SuppressWarnings("unused") TId node)
+    public void caseTNul(@SuppressWarnings("unused") TNul node)
     {
         this.index = 43;
     }
 
     @Override
-    public void caseEOF(@SuppressWarnings("unused") EOF node)
+    public void caseTInteger(@SuppressWarnings("unused") TInteger node)
     {
         this.index = 44;
     }
+
+    @Override
+    public void caseTId(@SuppressWarnings("unused") TId node)
+    {
+        this.index = 45;
+    }
+
+    @Override
+    public void caseEOF(@SuppressWarnings("unused") EOF node)
+    {
+        this.index = 46;
+    }
 }
diff --git a/src/saParser/parser/parser.dat b/src/saParser/parser/parser.dat
index ab0f40aba3c0985f37bdb0b822ad9f1dfab43c82..e64a05e0052df0e5319065a9509c0f8e150ee0be 100644
Binary files a/src/saParser/parser/parser.dat and b/src/saParser/parser/parser.dat differ