diff --git a/src/sa/Sc2sa.java b/src/sa/Sc2sa.java
index d9a301716a6b92a4c028a3de98a295e3ed454d04..b24fce2bd2f3ad7e18b320a1e989c82ad0f9e989 100644
--- a/src/sa/Sc2sa.java
+++ b/src/sa/Sc2sa.java
@@ -62,7 +62,9 @@ public class Sc2sa extends DepthFirstAdapter
 
     @Override
     public void caseAExp1Exp(AExp1Exp node) {
+        inAExp1Exp(node);
         node.getExp1().apply(this);
+        outAExp1Exp(node);
     }
 
     @Override
@@ -80,7 +82,9 @@ public class Sc2sa extends DepthFirstAdapter
 
     @Override
     public void caseAExp2Exp1(AExp2Exp1 node) {
+        inAExp2Exp1(node);
         node.getExp2().apply(this);
+        outAExp2Exp1(node);
     }
 
     @Override
@@ -111,7 +115,9 @@ public class Sc2sa extends DepthFirstAdapter
 
     @Override
     public void caseAExp3Exp2(AExp3Exp2 node) {
+        inAExp3Exp2(node);
         node.getExp3().apply(this);
+        outAExp3Exp2(node);
     }
 
     @Override
@@ -143,7 +149,9 @@ public class Sc2sa extends DepthFirstAdapter
 
     @Override
     public void caseAExp4Exp3(AExp4Exp3 node) {
+        inAExp4Exp3(node);
         node.getExp4().apply(this);
+        outAExp4Exp3(node);
     }
 
     @Override
@@ -174,7 +182,9 @@ public class Sc2sa extends DepthFirstAdapter
 
     @Override
     public void caseAExp5Exp4(AExp5Exp4 node) {
+        inAExp5Exp4(node);
         node.getExp5().apply(this);
+        outAExp5Exp4(node);
     }
 
     @Override
@@ -189,7 +199,9 @@ public class Sc2sa extends DepthFirstAdapter
 
     @Override
     public void caseAExp6Exp5(AExp6Exp5 node) {
+        inAExp6Exp5(node);
         node.getExp6().apply(this);
+        outAExp6Exp5(node);
     }
 
     @Override
@@ -205,6 +217,7 @@ public class Sc2sa extends DepthFirstAdapter
         node.getDpar().apply(this);
         op3 = (SaExp) this.returnValue;
         this.returnValue = new SaExp(op1,op2,op3);
+
         outAParenthesisExp6(node);
     }
 
@@ -219,187 +232,236 @@ public class Sc2sa extends DepthFirstAdapter
 
     @Override
     public void caseAVraiExp6(AVraiExp6 node) {
-        super.caseAVraiExp6(node);
+        inAVraiExp6(node);
+        outAVraiExp6(node);
     }
 
     @Override
     public void caseAFauxExp6(AFauxExp6 node) {
-        super.caseAFauxExp6(node);
+        inAFauxExp6(node);
+        outAFauxExp6(node);
     }
 
     @Override
     public void caseAAfExp6(AAfExp6 node) {
-        super.caseAAfExp6(node);
+        inAAfExp6(node);
+        outAAfExp6(node);
     }
 
     @Override
     public void caseAVarExp6(AVarExp6 node) {
-        super.caseAVarExp6(node);
+        inAVarExp6(node);
+        outAVarExp6(node);
     }
 
     @Override
     public void caseALireExp6(ALireExp6 node) {
-        super.caseALireExp6(node);
+        inALireExp6(node);
+        outALireExp6(node);
     }
 
     @Override
     public void caseAAffectationIns(AAffectationIns node) {
-        super.caseAAffectationIns(node);
+        inAAffectationIns(node);
+        outAAffectationIns(node);
     }
 
     @Override
     public void caseAFairetantqueIns(AFairetantqueIns node) {
-        super.caseAFairetantqueIns(node);
+        inAFairetantqueIns(node);
+        outAFairetantqueIns(node);
     }
 
     @Override
     public void caseAFonctionIns(AFonctionIns node) {
-        super.caseAFonctionIns(node);
+        inAFonctionIns(node);
+        outAFonctionIns(node);
     }
 
     @Override
     public void caseASialorsIns(ASialorsIns node) {
-        super.caseASialorsIns(node);
+        inASialorsIns(node);
+        outASialorsIns(node);
     }
 
     @Override
     public void caseASisinonIns(ASisinonIns node) {
-        super.caseASisinonIns(node);
+        inASisinonIns(node);
+        outASisinonIns(node);
     }
 
     @Override
     public void caseARetourIns(ARetourIns node) {
-        super.caseARetourIns(node);
+        inARetourIns(node);
+        outARetourIns(node);
     }
 
     @Override
     public void caseAEcrireIns(AEcrireIns node) {
-        super.caseAEcrireIns(node);
+        inAEcrireIns(node);
+        outAEcrireIns(node);
     }
 
     @Override
     public void caseABlocIns(ABlocIns node) {
-        super.caseABlocIns(node);
+        inABlocIns(node);
+        outABlocIns(node);
     }
 
     @Override
     public void caseAAccoladesBloc(AAccoladesBloc node) {
-        super.caseAAccoladesBloc(node);
+        inAAccoladesBloc(node);
+        outAAccoladesBloc(node);
     }
 
     @Override
     public void caseALinsLins(ALinsLins node) {
-        super.caseALinsLins(node);
+        inALinsLins(node);
+        outALinsLins(node);
     }
 
     @Override
     public void caseAEpsilonLins(AEpsilonLins node) {
-        super.caseAEpsilonLins(node);
+        inAEpsilonLins(node);
+        outAEpsilonLins(node);
     }
 
     @Override
     public void caseALexp2Lexp(ALexp2Lexp node) {
-        super.caseALexp2Lexp(node);
+        inALexp2Lexp(node);
+        outALexp2Lexp(node);
     }
 
     @Override
     public void caseAEpsilonLexp(AEpsilonLexp node) {
-        super.caseAEpsilonLexp(node);
+        inAEpsilonLexp(node);
+        outAEpsilonLexp(node);
     }
 
     @Override
     public void caseAVirguleLexp2(AVirguleLexp2 node) {
-        super.caseAVirguleLexp2(node);
+        inAVirguleLexp2(node);
+        outAVirguleLexp2(node);
     }
 
     @Override
     public void caseAEpsilonLexp2(AEpsilonLexp2 node) {
-        super.caseAEpsilonLexp2(node);
+        inAEpsilonLexp2(node);
+        outAEpsilonLexp2(node);
     }
 
     @Override
     public void caseAAfAf(AAfAf node) {
-        super.caseAAfAf(node);
+        inAAfAf(node);
+        outAAfAf(node);
     }
 
     @Override
     public void caseAIdVar(AIdVar node) {
-        super.caseAIdVar(node);
+        String id = "";
+        inAIdVar(node);
+        id = node.getId().getText();
+        this.returnValue = new SaId
+        outAIdVar(node);
     }
 
     @Override
     public void caseACrochetsVar(ACrochetsVar node) {
-        super.caseACrochetsVar(node);
+        inACrochetsVar(node);
+        outACrochetsVar(node);
     }
 
     @Override
     public void caseABooleanType(ABooleanType node) {
-        super.caseABooleanType(node);
+        inABooleanType(node);
+        this.returnType = Type.BOOL;
+        outABooleanType(node);
     }
 
     @Override
     public void caseAIntType(AIntType node) {
-        super.caseAIntType(node);
+        inAIntType(node);
+        this.returnType = Type.ENTIER;
+        outAIntType(node);
     }
 
     @Override
     public void caseATypeTypeopt(ATypeTypeopt node) {
-        super.caseATypeTypeopt(node);
+        inATypeTypeopt(node);
+        outATypeTypeopt(node);
     }
 
     @Override
     public void caseAEpsilonTypeopt(AEpsilonTypeopt node) {
-        super.caseAEpsilonTypeopt(node);
+        inAEpsilonTypeopt(node);
+        outAEpsilonTypeopt(node);
     }
 
     @Override
     public void caseAVarDecvar(AVarDecvar node) {
-        super.caseAVarDecvar(node);
+        String nomVariable = null;
+        Type typeVariable;
+        inAVarDecvar(node);
+        node.getType().apply(this);
+        typeVariable = this.returnType;
+        nomVariable = node.getId().getText();
+        this.returnValue = new SaDecVarSimple(nomVariable, typeVariable);
+        outAVarDecvar(node);
+
     }
 
     @Override
     public void caseATableauDecvar(ATableauDecvar node) {
-        super.caseATableauDecvar(node);
+        inATableauDecvar(node);
+        outATableauDecvar(node);
     }
 
     @Override
     public void caseAFonctionDecfonc(AFonctionDecfonc node) {
-        super.caseAFonctionDecfonc(node);
+        inAFonctionDecfonc(node);
+        outAFonctionDecfonc(node);
     }
 
     @Override
     public void caseAListedecvarLdecvar(AListedecvarLdecvar node) {
-        super.caseAListedecvarLdecvar(node);
+        inAListedecvarLdecvar(node);
+        outAListedecvarLdecvar(node);
     }
 
     @Override
     public void caseAEpsilonLdecvar(AEpsilonLdecvar node) {
-        super.caseAEpsilonLdecvar(node);
+        inAEpsilonLdecvar(node);
+        outAEpsilonLdecvar(node);
     }
 
     @Override
     public void caseAListedecvar2Ldecvar2(AListedecvar2Ldecvar2 node) {
-        super.caseAListedecvar2Ldecvar2(node);
+        inAListedecvar2Ldecvar2(node);
+        outAListedecvar2Ldecvar2(node);
     }
 
     @Override
     public void caseAEpsilonLdecvar2(AEpsilonLdecvar2 node) {
-        super.caseAEpsilonLdecvar2(node);
+        inAEpsilonLdecvar2(node);
+        outAEpsilonLdecvar2(node);
     }
 
     @Override
     public void caseAListedecfoncLdecfonc(AListedecfoncLdecfonc node) {
-        super.caseAListedecfoncLdecfonc(node);
+        inAListedecfoncLdecfonc(node);
+        outAListedecfoncLdecfonc(node);
     }
 
     @Override
     public void caseAEpsilonLdecfonc(AEpsilonLdecfonc node) {
-        super.caseAEpsilonLdecfonc(node);
+        inAEpsilonLdecfonc(node);
+        outAEpsilonLdecfonc(node);
     }
 
     @Override
     public void caseAEpsilon(AEpsilon node) {
-        super.caseAEpsilon(node);
+        inAEpsilon(node);
+        outAEpsilon(node);
     }
 }