From eb7d473c4b938f2c45b43a48b1e1eaf336e851a0 Mon Sep 17 00:00:00 2001
From: CLAVEL JULIEN <julien.clavel@etu.unistra.fr>
Date: Mon, 6 Jan 2025 17:36:30 +0000
Subject: [PATCH] Test 4 and 5 passed

---
 Codes_en_COREC/tests/test4.corec |  26 +--
 Codes_en_COREC/tests/test5.corec |  10 +-
 Codes_en_COREC/tests/test6.corec |  36 ++-
 README.md                        |  18 +-
 corec.l                          |  14 +-
 corec.y                          | 179 ++++++++++-----
 docs/projet_sujet.pdf            | Bin 369458 -> 370228 bytes
 lib.c                            | 377 ++++++++++++++++++++++---------
 lib.h                            |  60 +++--
 9 files changed, 485 insertions(+), 235 deletions(-)

diff --git a/Codes_en_COREC/tests/test4.corec b/Codes_en_COREC/tests/test4.corec
index 61dfdca..1985bf0 100644
--- a/Codes_en_COREC/tests/test4.corec
+++ b/Codes_en_COREC/tests/test4.corec
@@ -5,39 +5,29 @@ prog Test4 {
         Loc : (array,6), (float,1), float=3.0
         Rec : {
             array = 2;
+            array[1] = 2;
+            array[2] = 2;
+            array[3] = 2;
 
-            array += float;
-            printstr("Attendu 4.00");
+            array += 2;
             array[1] -= 2;
-            printstr("Attendu 2.00");
             array[2] /= 2;
-            printstr("Attendu 1.00");
             array[3] *= 2;
-            printstr("Attendu 2.00");
-
+            printstr("Expected : 4.0 0.0 1.0 4.0 0.0 0.0 \nObtained : ");
             print(array);
             
             array[1] = array[0] + float;
-            printstr("Attendu 5.00 :");
-            array[2] = array[0] - float;
-            printstr("Attendu 2.00 :");
-
+            array[2] = array[2] - float;
             array[3] = array[0] / float;
-            printstr("Attendu 0.66 :");
             array[4] = array[0] * float;
-            printstr("Attendu 2.00 :");
-
+            printstr("Expected : 4.0 7.0 -2.0 1.3333334 12.0 0.0 \nObtained : ");
             print(array);
             
             array[2] = array[0] + array[1];
-            printstr("Attendu 4.00 :");
             array[3] = array[0] - array[1];
-            printstr("Attendu 0.00 :");
             array[4] = array[0] / array[1];
-            printstr("Attendu 1.00 :");
             array[5] = array[0] * array[1];
-            printstr("Attendu 4.00 :");
-            
+            printstr("Expected : 4.0 7.0 11.0 -3.0 0.5714286 28.0 \nObtained : ");
             print(array)
         }
     }
diff --git a/Codes_en_COREC/tests/test5.corec b/Codes_en_COREC/tests/test5.corec
index ebb5b5e..053feb4 100644
--- a/Codes_en_COREC/tests/test5.corec
+++ b/Codes_en_COREC/tests/test5.corec
@@ -8,11 +8,15 @@ prog Test6 {
             f2 = 1.3;
 
             f1 += f2*2;
+            printstr("Expected : 1.2 + 1.3 * 2 = 3.8\nObtained : 1.2 + 1.3 * 2 = ");
+            print(f1);
+
             f2 = f2*2;
+            printstr("Expected : 1.3 * 2 = 2.6\nObtained : ");
+            print(f2);
             f1 /= f2+f2*4;
-
-            print(f1);
-            print(f2)
+            printstr("Expected : 3.8 / (2.6 + 2.6 * 4) = 0.29230767\nObtained : ");
+            print(f1)
         }
     }
 }
diff --git a/Codes_en_COREC/tests/test6.corec b/Codes_en_COREC/tests/test6.corec
index ef6219d..afa9e34 100644
--- a/Codes_en_COREC/tests/test6.corec
+++ b/Codes_en_COREC/tests/test6.corec
@@ -2,29 +2,27 @@
 
 prog Test6 {
     def Main{
-        Loc : a=2, (2Darray,3,3), (3Darray,a,a,a)//, 3Darray[0,0,0] = 0 //BUG HERE
+        Loc : a=2, (array2D,3,3), (array3D,a,a,a)//, array3D[0,0,0] = 0 //BUG HERE
         Rec : {
-            2Darray[0,0] = 0;
-            2Darray[0,1] = 1;
-            2Darray[0,2] = a;
-            2Darray[1,0] = 3.0;
-            2Darray[1,1] = 4.5;
-            2Darray[1,2] = 5;
+            array2D[0,0] = 0;
+            array2D[0,1] = 1;
+            array2D[0,2] = a;
+            array2D[1,0] = 3.0;
+            array2D[1,1] = 4.5;
+            array2D[1,2] = 5;
             
-            print(2Darray);
+            print(array2D);
 
-            3Darray[0,0,0] = 0;
-            3Darray[0,0,1] = 1;
-            3Darray[0,1,0] = a;
-            3Darray[0,1,1] = 3;
-            3Darray[1,0,0] = 4;
-            3Darray[1,0,1] = 5;
-            3Darray[1,1,0] = 6;
-            3Darray[1,1,1] = 7;
+            array3D[0,0,0] = 0;
+            array3D[0,0,1] = 1;
+            array3D[0,1,0] = a;
+            array3D[0,1,1] = 3;
+            array3D[1,0,0] = 4;
+            array3D[1,0,1] = 5;
+            array3D[1,1,0] = 6;
+            array3D[1,1,1] = 7;
 
-            print(3Darray);
-            printstr("Expected a = 2\nReal a = ");
-            print(a);
+            print(array3D);
             printstr("Fini")
         }
     }
diff --git a/README.md b/README.md
index 8c38f75..931fa20 100644
--- a/README.md
+++ b/README.md
@@ -37,19 +37,19 @@ sudo apt install bison
 
 ## Implemented Features
 ### 1. branch test1
-- Definition of local variable in the loc section of functions. **(TO DO :TRANSLATE IN MIPS but do not do here the float value)**
-- Affectation of integer value. **(TO DO :TRANSLATE IN MIPS but do not do here the float value)**
-- Print and printstr functions. **(TO DO :TRANSLATE IN MIPS)**
+- Definition of local variable in the loc section of functions. *
+- Affectation of integer value.
+- Print and printstr functions.
 ### 2. branch test2
-- Operation on variable (except arrays) -> (+,-,*,/). **(TO DO :TRANSLATE IN MIPS)**
-- Assignement operation on variable (except arrays) -> (+=,-=,*=,/=). **(TO DO :TRANSLATE IN MIPS)**
+- Operation on variable (except arrays) -> (+,-,*,/).
+- Assignement operation on variable (except arrays) -> (+=,-=,*=,/=).
 ### 3. branch test3
-- Affectation and definition of local 1D array. **(TO DO :TRANSLATE IN MIPS)**
+- Affectation and definition of local 1D array.
 ### 4. branch test4
-- Operation with and on local 1D array. **(TO DO :TRANSLATE IN MIPS)**
-- print function works on array. **(TO DO :TRANSLATE IN MIPS)**
+- Operation with and on local 1D array.
+- print function works on array.
 ### 5. branch test5
-- float value as singleton array. **(TO DO :TRANSLATE IN MIPS)**
+- float value as singleton array.
 - Cast integer in float if integer affectation to arrays or multiplication of a float and an integer. (Implicit)
 ### 6. branch test6
 - Affectation multi dimensional array. **(TO DO :TRANSLATE IN MIPS)**
diff --git a/corec.l b/corec.l
index 572b155..ff6f3aa 100644
--- a/corec.l
+++ b/corec.l
@@ -63,13 +63,21 @@ in            {return in_dom;}
 "/"           {return divide;}
 "%"           {return mod;}
 
-([0-9]*[[:alpha:]]+|[[:alpha:]])[[:alnum:]]*        {
+[[:alpha:]][[:alnum:]]*                             {
                                                         if ( yyleng > 63 )
-                                                            fprintf(stderr,"Error at line %u: Identifier '%s' too long (> 31), truncated.\n",lineNumber,yytext);
+                                                            fprintf(stderr,"Error at line %u: Identifier '%s' too long (> 63), truncated.\n",lineNumber,yytext);
                                                         strncpy(yylval.strval,yytext,63);
                                                         yylval.strval[64] = '\0';
-                                                        return ID;
+                                                        return ID1;
                                                     }
+[0-9]*[[:alpha:]]+[[:alnum:]]*                      {
+                                                        if ( yyleng > 63 )
+                                                            fprintf(stderr,"Error at line %u: Identifier '%s' too long (> 63), truncated.\n",lineNumber,yytext);
+                                                        strncpy(yylval.strval,yytext,63);
+                                                        yylval.strval[64] = '\0';
+                                                        return ID2;
+                                                    }
+
 ["]([^"]|[\\]["])*["]   {
                             if ( yyleng > 1023 )
                                 fprintf(stderr,"Error at line %u: Identifier '%s' too long (> 1023), truncated\n",lineNumber,yytext);
diff --git a/corec.y b/corec.y
index 997990c..d63de70 100644
--- a/corec.y
+++ b/corec.y
@@ -73,7 +73,8 @@ void exit_safely(){
 %token out
 %token inout
 
-%token <strval> ID
+%token <strval> ID1
+%token <strval> ID2
 %token <strval> chaine
 %token <intval> entier
 %token <floatval> flottant
@@ -123,6 +124,7 @@ void exit_safely(){
 %type <ptrValE> E T F CALL
 %type <ptrArray> ARRAYREF 
 %type <opaff> OPAFF
+%type <opaff> OPREL
 
 
 %%
@@ -149,8 +151,8 @@ LFONC :
     | %empty
     ;
 FONC : 
-    // Declaration of a function ID
-    def ID 
+    // Declaration of a function ID1
+    def ID1 
         {
             struct symbol* id = symtable_get(SYMTAB,$2,symb_scope_function);
             if ( id != NULL ){
@@ -175,7 +177,7 @@ LDECL :
     | DECL
     ;
 DECL : // Section Loc declaration of arguments
-    ID 
+    ID1 
         {
             // Declare a variable without affectation
             struct symbol* id = symtable_get(SYMTAB,$1,symb_scope_function);
@@ -185,47 +187,47 @@ DECL : // Section Loc declaration of arguments
             }
             id = symtable_put_loc(SYMTAB,$1,symb_scope_function);
         }
-    | ID aff E 
+    | ID1 aff E 
         {   
             // Declare a variable with affectation of value
             struct symbol* id = symtable_get(SYMTAB,$1,symb_scope_function);
 
             // Errors detection
             if($3.ptr->kind == CONSTANT_FLOAT){ // Float = array
-                if(id == NULL){ // Test if the variable ID is already declare
+                if(id == NULL){ // Test if the variable ID1 is already declare
                     fprintf(stderr, "Error at line %u in function '%s': Try to declare variable '%s' as a float (array of dimension and lenght 1) but the size isn't declare. You may prefer to do this : '(%s,1), '%s'=%0.2f'.\n",lineNumber,symb_scope_function->u.name,$1,$1,$1,$3.ptr->u.value_float);
                     exit_safely();
                 }
-                else if(id->kind != ARRAY){ // Test if the variable ID isn't an array (cannot affect an array value (float) to a non array variable)
+                else if(id->kind != ARRAY){ // Test if the variable ID1 isn't an array (cannot affect an array value (float) to a non array variable)
                     fprintf(stderr, "Error at line %u in function '%s': Try assigning at variable '%s' a float value (an array of dimension and lenght 1) but '%s' isn't an array.\n",lineNumber,symb_scope_function->u.name,$1,$1);
                     exit_safely();
                 }
             }
             else if($3.ptr->kind == ARRAY || $3.isEArray){ // Affectation is an array
-                if(id == NULL){ // Test if the variable ID is already declare
+                if(id == NULL){ // Test if the variable ID1 is already declare
                     fprintf(stderr, "Error at line %u in function '%s': Try to declare variable '%s' as an integer but the affectation value is an array.\n",lineNumber,symb_scope_function->u.name,$1);
                     exit_safely();
                 }
-                else if(id->kind != ARRAY){ // Test if ID isn't an array
+                else if(id->kind != ARRAY){ // Test if ID1 isn't an array
                     fprintf(stderr, "Error at line %u in function '%s': Try assigning an array variable '%s' to a non array type variable '%s'.\n",lineNumber,symb_scope_function->u.name,$3.ptr->u.arr.name,$1);
                     exit_safely();
                 }
             }
             else{ // Test if affectation value isn't a float and array
-                if (id != NULL){ // Test if the variable ID is already declare
+                if (id != NULL){ // Test if the variable ID1 is already declare
                     fprintf(stderr, "Error at line %u in function '%s': Variable '%s' is already declared.\n",lineNumber,symb_scope_function->u.name,$1);
                     exit_safely();
                 }
 
-                // Create a local variable name = ID in the scope of the 'symb_scope_function'
+                // Create a local variable name = ID1 in the scope of the 'symb_scope_function'
                 id = symtable_put_loc(SYMTAB,$1,symb_scope_function); 
             }
 
-            if(id->kind == ARRAY){ // Handle if ID is an implicit array(array -> array[0]) (ID is already declare, not by symtable_put_loc three instructions above)
+            if(id->kind == ARRAY){ // Handle if ID1 is an implicit array(array -> array[0]) (ID1 is already declare, not by symtable_put_loc three instructions above)
                 struct symbol* const_0 = symtable_const_int(SYMTAB,0);
                 gencode(CODE,AFF_ARRAY,id,const_0,$3.ptr);
             }
-            else // ID isn't an array
+            else // ID1 isn't an array
                 gencode(CODE,COPY,id,$3.ptr,NULL);
         }
     | // Array declaration
@@ -257,15 +259,15 @@ DECL : // Section Loc declaration of arguments
                 size = tabArrayDim[0];
             } else{ //ND arrays, except 1D array, require temporary operation
                 struct symbol* tmpPair;
-                struct symbol* tmpImpair = newtemp(SYMTAB);
+                struct symbol* tmpImpair = newtemp(SYMTAB,INTEGER);
                 gencode(CODE,BOP_MULT,tmpImpair,tabArrayDim[0],tabArrayDim[1]); // Init (case 2D array)
                 
                 for(unsigned int i=2;i<$2.dim;i++){
                     if(i%2 == 0){
-                        tmpPair = newtemp(SYMTAB);
+                        tmpPair = newtemp(SYMTAB,INTEGER);
                         gencode(CODE,BOP_MULT,tmpPair,tmpImpair,tabArrayDim[i]);
                     } else{
-                        tmpImpair = newtemp(SYMTAB);
+                        tmpImpair = newtemp(SYMTAB,INTEGER);
                         gencode(CODE,BOP_MULT,tmpImpair,tmpPair,tabArrayDim[i]);
                     }                    
                 }
@@ -283,8 +285,8 @@ DECL : // Section Loc declaration of arguments
         }
     ;
 
-ARRAY : // Array declaration shape (ID, length_dim1, length_dim2, ..., length_dimN)
-    left_parenthesis ID comma DLIST right_parenthesis
+ARRAY : // Array declaration shape (ID1, length_dim1, length_dim2, ..., length_dimN)
+    left_parenthesis ID1 comma DLIST right_parenthesis
         {
             $$.dim = $4.dim;
             strcpy($$.name,$2);
@@ -336,7 +338,7 @@ ARGLIST :
     ;
 ELTARG : 
     ARRAY
-    | ID
+    | ID1
     ;
 
 DOM : 
@@ -349,7 +351,7 @@ DOMLIST :
     | D
     ;
 D : 
-    ID in_dom left_bracket E double_period E right_bracket
+    ID1 in_dom left_bracket E double_period E right_bracket
     ;
 
 REC : 
@@ -377,7 +379,7 @@ I :
     COND
     | AFFECTATION // Affectation of variables
     | CALL // Call of functions or variables
-    | read_f left_parenthesis ID right_parenthesis // Read
+    | read_f left_parenthesis ID1 right_parenthesis // Read
     | print left_parenthesis {isPrintCall = 1;} CALL right_parenthesis // Print variable (printing out var of functions ins't implement yet)
             {   
                 gencode(CODE,CALL_PRINT,$4.ptr,NULL,NULL);
@@ -422,8 +424,8 @@ AFFECTATION :
             // Compute the Arrays [+-/*] E and store it in a temporary variable
             struct symbol* tmp1;
             struct symbol* tmp2;
-            tmp1 = newtemp(SYMTAB);
-            tmp2 = newtemp(SYMTAB);
+            tmp1 = newtemp(SYMTAB,FLOAT);
+            tmp2 = newtemp(SYMTAB,FLOAT);
             
             // Copy in a temporary var the value of ARRAYREF
             gencode(CODE,COPY_ARRAY,tmp1,$1.ptr1,$1.ptr2);
@@ -459,7 +461,7 @@ AFFECTATION :
             // Copy the tmp2 in the array memory
             gencode(CODE,AFF_ARRAY,$1.ptr1,$1.ptr2,tmp2);
         }
-    | ID OPAFF E  // Assignement operation of E to ID
+    | ID1 OPAFF E  // Assignement operation of E to ID1
         {
             struct symbol* tmpArr;
             struct symbol* id = symtable_get(SYMTAB,$1,symb_scope_function);
@@ -469,14 +471,14 @@ AFFECTATION :
                 fprintf(stderr, "Error at line %u in function '%s': Variable '%s' is not declared, neither as an argument, nor as a local variable.\n",lineNumber,symb_scope_function->u.name,$1);
                 exit_safely();
             }
-            else if(id->kind == ARRAY){ // Handle if ID is an implicit array(array -> array[0])
+            else if(id->kind == ARRAY){ // Handle if ID1 is an implicit array(array -> array[0])
                 if($3.ptr->kind == CONSTANT_INT){ // Cast
                     t = symtable_const_double(SYMTAB,(float)$3.ptr->u.value_int); 
                 }
                 else{
                     t = $3.ptr;
                 }
-                tmpArr = newtemp(SYMTAB);
+                tmpArr = newtemp(SYMTAB,FLOAT);
                 struct symbol* const_0 = symtable_const_int(SYMTAB,0);
                 gencode(CODE,COPY_ARRAY,tmpArr,id,const_0);
             }
@@ -489,9 +491,13 @@ AFFECTATION :
                 tmpArr = id;
             }
 
-            // Compute the ID [+-/*] E and store it in a temporary variable
+            // Compute the ID1 [+-/*] E and store it in a temporary variable
+            enum var_type ty = INTEGER;
+            if(ISFLOAT(t) || ISFLOAT(tmpArr))
+                ty = FLOAT;
             struct symbol* tmp;
-            tmp = newtemp(SYMTAB);
+            
+            tmp = newtemp(SYMTAB,ty);
 
             switch($2.opnum){
                 case 1:
@@ -521,7 +527,7 @@ AFFECTATION :
             }
 
             // Copy the temp in the variable
-            if(id->kind == ARRAY){ // Handle if ID is an implicit array(array -> array[0])
+            if(id->kind == ARRAY){ // Handle if ID1 is an implicit array(array -> array[0])
                 struct symbol* const_0 = symtable_const_int(SYMTAB,0);
                 gencode(CODE,AFF_ARRAY,id,const_0,tmp);
             }
@@ -542,7 +548,7 @@ AFFECTATION :
             //                      id      index  E 
             gencode(CODE,AFF_ARRAY,$1.ptr1,$1.ptr2,t);
         }
-    | ID aff E  // Affectation of A to ID
+    | ID1 aff E  // Affectation of A to ID1
         {    
             struct symbol* id = symtable_get(SYMTAB,$1,symb_scope_function);
             
@@ -557,7 +563,7 @@ AFFECTATION :
                 exit_safely();
             }
 
-            if(id->kind == ARRAY){ // Handle if ID is an implicit array(array -> array[0])
+            if(id->kind == ARRAY){ // Handle if ID1 is an implicit array(array -> array[0])
                 struct symbol* t;
                 if($3.ptr->kind == CONSTANT_INT){ // Cast
                     t = symtable_const_double(SYMTAB,(float)$3.ptr->u.value_int); 
@@ -574,11 +580,11 @@ AFFECTATION :
     ;
 
 CALL : 
-    ID left_parenthesis LCALL right_parenthesis // Call of functions
+    ID1 left_parenthesis LCALL right_parenthesis // Call of functions
         {   
             $$.ptr = NULL;
         }
-    | ID    // Call variables
+    | ID1    // Call variables
         {
             struct symbol* id = symtable_get(SYMTAB,$1,symb_scope_function);
             if ( id == NULL ){
@@ -586,13 +592,13 @@ CALL :
                 exit_safely();
             }
 
-            if(id->kind == ARRAY && !isPrintCall){ // If ID is an implicit array and we isn't in a print, we add [0] after ID : ID[0]
+            if(id->kind == ARRAY && !isPrintCall){ // If ID1 is an implicit array and we isn't in a print, we add [0] after ID1 : ID1[0]
                 $$.isEArray = 1;
-                $$.ptr = newtemp(SYMTAB);
+                $$.ptr = newtemp(SYMTAB,FLOAT);
                 struct symbol* const_0 = symtable_const_int(SYMTAB,0);
                 gencode(CODE,COPY_ARRAY,$$.ptr,id,const_0);
             }
-            else // Else if we are in a print with an array or we just a normal variable, we just call ID
+            else // Else if we are in a print with an array or we just a normal variable, we just call ID1
                 $$.ptr = id;
             
             isPrintCall = 0;
@@ -609,9 +615,9 @@ PRECINST :
     mod entier %prec formatmod
     ;
 ARRAYREF : // Array indexing
-    ID left_bracket ELIST right_bracket // ID[...]
+    ID1 left_bracket ELIST right_bracket // ID1[...]
         {
-            // $$.ptr1 -> The ID symbol 
+            // $$.ptr1 -> The ID1 symbol 
             // $$.ptr2 -> The index symbol
 
             struct symbol* id = symtable_get(SYMTAB,$1,symb_scope_function);
@@ -638,7 +644,7 @@ ARRAYREF : // Array indexing
             struct symbol* kIndex1Dpair;
             struct symbol* kIndex1Dimpaire;
 
-            index=newtemp(SYMTAB);
+            index=newtemp(SYMTAB,INTEGER);
             for(unsigned int k=0;k<$3.dim;k++){
                 // Get K+1dim index
                 struct symbol* kIndexND = tabArrayDim[k];
@@ -661,21 +667,21 @@ ARRAYREF : // Array indexing
                     struct symbol* tmpPair;
                     struct symbol* tmpImpair;
                     if(k%2==0){
-                        tmpPair = newtemp(SYMTAB);
+                        tmpPair = newtemp(SYMTAB,INTEGER);
                         tmpImpair;
                         gencode(CODE,BOP_MULT,tmpPair,id->u.arr.size[k+1],id->u.arr.size[k+2]);
                     } else{
                         tmpPair;
-                        tmpImpair = newtemp(SYMTAB);
+                        tmpImpair = newtemp(SYMTAB,INTEGER);
                         gencode(CODE,BOP_MULT,tmpImpair,id->u.arr.size[k+1],id->u.arr.size[k+2]);
                     }
                     for(unsigned int j=k+3;j<$3.dim;j++){
                         id->u.arr.size[j];
                         if(j%2 == 0){
-                            tmpPair = newtemp(SYMTAB);
+                            tmpPair = newtemp(SYMTAB,INTEGER);
                             gencode(CODE,BOP_MULT,tmpPair,tmpImpair,id->u.arr.size[j]);
                         } else{
-                            tmpImpair = newtemp(SYMTAB);
+                            tmpImpair = newtemp(SYMTAB,INTEGER);
                             gencode(CODE,BOP_MULT,tmpImpair,tmpPair,id->u.arr.size[j]);
                         }   
                     }
@@ -692,7 +698,7 @@ ARRAYREF : // Array indexing
                             gencode(CODE,COPY,index,kIndexND,NULL);
                         }
                     } else{
-                        kIndex1Dpair = newtemp(SYMTAB);
+                        kIndex1Dpair = newtemp(SYMTAB,INTEGER);
                         if(shift!=NULL){
                             gencode(CODE,BOP_MULT,kIndex1Dpair,kIndexND,shift);
                         } else{
@@ -701,7 +707,7 @@ ARRAYREF : // Array indexing
                         gencode(CODE,BOP_PLUS,index,index,kIndex1Dpair);
                     }
                 } else{
-                    kIndex1Dimpaire = newtemp(SYMTAB);
+                    kIndex1Dimpaire = newtemp(SYMTAB,INTEGER);
                     if(shift!=NULL){
                         gencode(CODE,BOP_MULT,kIndex1Dimpaire,kIndexND,shift);
                     } else{
@@ -768,8 +774,11 @@ ELIST : // Indexing list
 E :
     E plus T
         {
-            $$.ptr = newtemp(SYMTAB);
-            if($1.ptr->kind == CONSTANT_INT && ($3.ptr->kind == CONSTANT_FLOAT || $3.ptr->kind == ARRAY)){ // If a float is T, then need to cast E to a float to do float+float => $$ E the result is array
+            enum var_type ty = INTEGER;  // by default result is an integer
+            if(ISFLOAT($1.ptr) || ISFLOAT($3.ptr)) // check if one of the operand is a float
+                ty = FLOAT;  // since one operand is a float the result is a float
+            $$.ptr = newtemp(SYMTAB,ty);
+            if($1.ptr->kind == CONSTANT_INT && ($3.ptr->kind == CONSTANT_FLOAT || $3.ptr->kind == ARRAY || $3.ptr->kind == NAME_FLOAT)){ // If a float is T, then need to cast E to a float to do float+float => $$ E the result is array
                 $$.isEArray = 1;
                 struct symbol* t = symtable_const_double(SYMTAB,(float)$1.ptr->u.value_int); 
                 gencode(CODE,BOP_PLUS,$$.ptr,t,$3.ptr); 
@@ -783,7 +792,10 @@ E :
         }
     | E sub T
         {
-            $$.ptr = newtemp(SYMTAB);
+            enum var_type ty = INTEGER;  // by default result is an integer
+            if(ISFLOAT($1.ptr) || ISFLOAT($3.ptr)) // check if one of the operand is a float
+                ty = FLOAT;  // since one operand is a float the result is a float
+            $$.ptr = newtemp(SYMTAB,ty);
             if($1.ptr->kind == CONSTANT_INT && ($3.ptr->kind == CONSTANT_FLOAT || $3.ptr->kind == ARRAY)){
                 $$.isEArray = 1;
                 struct symbol* t = symtable_const_double(SYMTAB,(float)$1.ptr->u.value_int); 
@@ -798,7 +810,10 @@ E :
         }
     | sub E %prec usub
         {
-            $$.ptr = newtemp(SYMTAB);
+            enum var_type ty = INTEGER;  // by default result is an integer
+            if(ISFLOAT($2.ptr)) // check if the operand is a float
+                ty = FLOAT;  // since the operand is a float the result is a float
+            $$.ptr = newtemp(SYMTAB,ty);
             gencode(CODE,UOP_MINUS,$$.ptr,$2.ptr,NULL);
         }
     | T
@@ -811,7 +826,10 @@ E :
 T : 
     T mult F 
         {
-            $$.ptr = newtemp(SYMTAB);
+            enum var_type ty = INTEGER;  // by default result is an integer
+            if(ISFLOAT($1.ptr) || ISFLOAT($3.ptr)) // check if one of the operand is a float
+                ty = FLOAT;  // since one operand is a float the result is a float
+            $$.ptr = newtemp(SYMTAB,ty);
             if($1.ptr->kind == CONSTANT_INT && ($3.ptr->kind == CONSTANT_FLOAT || $3.ptr->kind == ARRAY)){
                 $$.isEArray = 1;
                 struct symbol* t = symtable_const_double(SYMTAB,(float)$1.ptr->u.value_int); 
@@ -826,7 +844,10 @@ T :
         }
     | T divide F
         {
-            $$.ptr = newtemp(SYMTAB);
+            enum var_type ty = INTEGER;  // by default result is an integer
+            if(ISFLOAT($1.ptr) || ISFLOAT($3.ptr)) // check if one of the operand is a float
+                ty = FLOAT;  // since one operand is a float the result is a float
+            $$.ptr = newtemp(SYMTAB,ty);
             if($1.ptr->kind == CONSTANT_INT && ($3.ptr->kind == CONSTANT_FLOAT || $3.ptr->kind == ARRAY)){
                 $$.isEArray = 1;
                 struct symbol* t = symtable_const_double(SYMTAB,(float)$1.ptr->u.value_int); 
@@ -841,7 +862,10 @@ T :
         }
     | T mod F 
         {
-            $$.ptr = newtemp(SYMTAB);
+            enum var_type ty = INTEGER;  // by default result is an integer
+            if(ISFLOAT($1.ptr) || ISFLOAT($3.ptr)) // check if one of the operand is a float
+                ty = FLOAT;  // since one operand is a float the result is a float
+            $$.ptr = newtemp(SYMTAB,ty);
             if($1.ptr->kind == CONSTANT_INT && ($3.ptr->kind == CONSTANT_FLOAT || $3.ptr->kind == ARRAY)){
                 $$.isEArray = 1;
                 struct symbol* t = symtable_const_double(SYMTAB,(float)$1.ptr->u.value_int); 
@@ -874,7 +898,7 @@ F :
     | ARRAYREF 
         {
                        
-            $$.ptr = newtemp(SYMTAB);
+            $$.ptr = newtemp(SYMTAB,FLOAT);
             gencode(CODE,COPY_ARRAY,$$.ptr,$1.ptr1,$1.ptr2);
         }
     | entier 
@@ -889,6 +913,36 @@ F :
 
 COND : 
     E OPREL E ternary_then B ternary_else B
+        {
+            /*
+            switch($2.opnum){
+                case 1:
+                    gencode(CODE,OPREL_LT,tmp,tmpArr,t);
+                    break;
+
+                case 2:
+                    gencode(CODE,OPREL_GT,tmp,tmpArr,t);
+                    break;
+
+                case 3:
+                    gencode(CODE,OPREL_LE,tmp,tmpArr,t);
+                    break;
+
+                case 4:
+                    gencode(CODE,OPREL_GE,tmp,tmpArr,t);
+                    break;
+
+                case 5:
+                    gencode(CODE,OPREL_EQ,tmp,tmpArr,t);
+                    break;
+
+                default:
+                    fprintf(stderr, "BUG\n");
+                    break;
+                    
+            }
+            */
+        }
     ;
 B : 
     BLOCKINST 
@@ -896,11 +950,30 @@ B :
     ;
 OPREL : 
     inf 
+        {
+            $$.opnum = 1;
+        }
     | sup 
+        {
+            $$.opnum = 2;
+        }
     | inf_equal 
+        {
+            $$.opnum = 3;
+        }
     | sup_equal 
+        {
+            $$.opnum = 4;
+        }
     | equal
+        {
+            $$.opnum = 5;
+        }
     ;
+    
+ID :
+    ID1
+    | ID2
 
 %%
 
diff --git a/docs/projet_sujet.pdf b/docs/projet_sujet.pdf
index 71d84338e4ba5bdec7b89196bd3505b8b2e05420..36e8b3cd243df404de318a4fec1a317b2c940d6f 100644
GIT binary patch
delta 53526
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

delta 52761
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%0D34frV27QLM5UYSQ_>&oy+O<#1`OX#*
z<qF0MGJm_Iz#0uY!u7tR?zDC&w+3%LyI!&l2XqH+zmG0Aloz`7&L`XkwSC#9&2@B0
zcA^orQpc3hwU2;gu7V}E>>bvrxSBNAkt@q`W#hsv5GsVK{-BP`T+wAJkb~uj#_<*5
z$B%D;`2Aut-8?fTj$!qZf9kd^+#H;V+3>7LMt@N>UMtCUQH18bhvp0X95OrZiNHSz
zB2bA0=VbE93BIcnIQ!9}{S2G<IcV6pCe%<pWf}i_-k~^FD4R{cE1Js3Q5R?I4|9t+
zW088W4H_}97D}<+$ogtlPak(Lftz!JHnQjO(vQ!~t94S>GntoI^YOsxLz}Mq4UzER
z@P7^F#o)Yx%k0@8aM_kfdXsh(;_`vP-7*2+H*1WNR{su)>fvr|SuDX!a5uRtErkyi
zw}vUo2mfeY{B?5@?-p3~5^dzqVoLeH1#p}y71VPVv{)QNJ*qLJBoZknfJc4-9&-wV
z--~vfHvu9HZRgv)$RRHXc)2sRQ&RGUhkv}WE)x*|vZ*Kay|Xp#5QW#k7*7X#fA&NI
zdvYhIK`vElKqWgD0WCMtb4TjS6$`FTLt^{5MmMFzXiCkTSYE$H_D>EL9~(f0T&L}0
zRQII7G#=bdRl*cxh*Py+%FYrkm}Y%R^o}IT`ezSvn44oNHMX2Z?53OU)E38%SATQ?
zSSQd65j%~x-Ja7}ZXauqC7v3_$Fx@1w1)^?6F#Xpy%f_MjM6X21%x-V*gTn0X-3ca
zGfmQXJT7|zrp|_UBk?-p-nIm1+SB}`j*qQu3*mi=o!Ka-jiE!*>lKA}(PF&0hn4%>
z6ZPu^$AzVK!JrICDM0J8DiCr4Tz`8k4_*ZQ)115X)@2ZB&V~nzLfP66b&shsFpolM
zD8u-T|9g>q8JBs~6lK7E#G_KF0=)ilQfW4t39z?_EsGmeW!sq|Gv|)2{za9ofS*rF
zr{v}{T%7|fm7B1g6XG^S5zatK^Q2|Xo+;fxap9O#JJIGnhZ=gF6hqhfP=Ay?Xq5$8
zfEzj33VmeAE00}Ism8OT=P_2et3CS{_TJJX?p16?Uo4XM(=LsYBR}~Ms}zazaUZ|R
z1sAS(vti#%0V!0`pUn5JUz<1yl+8?Z^6iJ*9Y2VfWK;M!7K=f3maQFEFC7!f+k#*Q
zUJ~S!Io{0{Fc#bfjkwD#f`10RoMAv7Q;J#&g`Djz=-_}a+q4-@`~^BQLPJMUG44iK
zyyGVSS=)_@UHSm;x0ny_ThXC5Rr+0OU?bMImPIxbC`9$fj;lc+Sp?3A%wW|?Z9(cZ
zi$FDjik^fstkr65Fl%O1>KC5K)v}vu5YIR{#08vu$o~c>vHTk7E`L~tu0XK#`$vQg
zABS#QvU>PI_`#t?P#mPQlFhfTI=p;&dX{qXZIJ!gF9DG&zpeag(+)%vG^Rv|NXpih
zR;w()1HIe}TqsfZxV{UgiA`819RBu|svutCDP$;bh@JEEBMrAR%H8<%Knn{QbKjnt
zr@LdX3kgLlwMB7C*nc*%jU7P1?3UE&n;5Rd8gttS!4);rl~aP8A6rOB)VLp4ih+%Y
z1d>v3b-iarsB4-EaL<xviay4?LtOhUwHNlIfD)IP;@`YDOa83wbCaK(lvZ%lJ)?8X
zpd)BvFwkO99FTJ#chI3KC$id_3vS65j4!m-Svu3HU4|Y~Zhz6vw~D7BrE0MA+|WAv
zr_wTnW4cnxa%)KaDt@vik!Y8D38Kzz%6v&#p$wlTMt~!y&2j6PhhQ#w$-eli9Ghla
zX#{zYI73fhxwt_*@G1cvn2BkCa9N2RUw^?4Yr)pAba=adho_9lHOB?hayhTl%J=i|
z7d1--j@U94a(_i^lmLI&F>O#tKy>s5EYboYIbIaRW+}~{E;GZNbn6S7&|5x}RXEc+
z?p$_UTa`^BeG9^ZcWxxVeAOwBon$Q2A0bPf<S27+$Z=5FNz%D?hUln_1=540e_O}o
z>*GY+!;2d4A*It}O)6$;Sg3rqx!$B3r=je_b!x8)-G65Kc41*~5kQ~T2+r<3=pG#{
z>(1I_z!=az*xN9q$K%eJNu7#0fu&;kAR!Qc0O%MPzX;n)sZH5rwvl}kN6{`Yk|q84
zzqZ#$vM@$((YFXd_i|UombI1tGt6rJ`4Rq;hbS>-8dcEDp%;#p!>zeF4`Q!e-MZHg
zqERkn7=P`PWus99EGZJ1wlm*Kc)s^EK1LP4<lJDY=}NMcb{FQBYj%^gI*)3pL8_#}
z5(;fUGJZNH5$z}dbz%OTmr!firwV_|8_4&i3sj0qy{FYSeCO~+LuhyFetjRO@BKr9
zZ;D3V3~N^Tjo6_c(SEhGY(d1;QrmlL$Dm8|2!Ah`<NR%ktCdoCC8~B24%j5^e<C`w
z(LEmlOubH9dScttLp*u=6s1r2Uux3eQHsw@M}`Uh6SStfkFD#nG(X;E`^kw<Zlg~h
zFh*6M(l2zrA9~R`_Ju>PnfB!p8k5Z_nV(TkRPL7+5NzoFsipM2^j-{3z9pZRo@ss`
z$bU&<cMEYRqY1*`F?4hB-Bs(Py6b}JSmcU+`=3o)sHCO98%y1`(b(djFr*L6WAs>#
zutmZ6azcE{*(%vLZvy=V1V>8<wD~ZOh2wsYXbBrWNt<n0;6ca=8{MnjBv6NWVLwn_
zcWS`J66hvJizyTDSIe&B_zY~tv@t8P-+z8UOzBY>a#7$C%$>J>MH{d11_W7$oHB<m
zHHj<;&obLpQ~uR^&W7@OR$NW6dd<!8ZC(yhlHsE1=_aP36I12r-0FK7aUJcMr{(`F
z;!~?FGw?fdJhf|hhhIKAmybQXB#rHce7dU8JpxH?n#LyGdjnBBj6WTGcFx2}r+@o|
z5$`Y<{$6v)9>uBpb674;22Z=sCLB6mq0p7KEJThmmgnT$_yH$?_%zLeqzOSBB1OJd
z#rl-ZiRAKy;=xS_1h*3~!0PU$MX+Q)rz`n)_X}s4mU7j*d06m_H`x~pj4+HeXz!f^
zv9`np#BcwNJn5$H=tyaQFDYLh(|>~O`ct<m@GAuU%=%%2KN9wBhA4y_x1a#M^boe)
z;he}%X5}06mXY#3y9?~^Ma-I-*5F6Ll5Lbe5s|V)#u^9u^J69*`y`kXUzyYHkA65t
zafxJ@!57WE0OQ1@v!n?(qI1}WolxNyM~!q-AnS@4!M~lP1JptQ`sYh*_J0%!2C0QL
zkK>OkK79Rh{v>h|h`Pnh3Q@zI+Fdce_8mMF`cN2)qs{uEl+Bv_7nirsCSrBr6L6YI
z)e%HUmr-zody_g3iK(qG(JHY8U#s10w(YHaM?a3U{8v!2w!!((Ns8TYGmwQ7zGl!=
z<7kMD(ps^<AT3$6XSI)vS${Kd7`%k3OGbSNX(ZQX{ETBTw^sWSQLy6BJzHWdiIT^L
z8(qmOI<b_=THDASnui`u$W32IK1?VzNAxeg@lxje13VcmwiqoxYlf(DDs^cxm%0wH
z)>2dtJIi=yjG`0(42w%ygj86owI&P3e#dA``{NVv>63jv(t0;+qkpVMT|ryiG=j%O
zma1r`Pdd)Wt-ZREUWR8ldgJcnvO3iF66BaqQTi_ugg9!9;j8808&kN438_f9n1F56
z*boD|8Wx;CrZ?aSowKsN5aNZH?%b0e<L)U8vM9?1cRk=^#P9+=EDgeq_Y=pUEA?;Z
zKYo;M+JPc8f=z|JJAYmV;~Q(xd<FB?id7$bX-U`jPD1K2P&#OXKp#x?i|$l}4o>(N
zJ8CgqEfPq{1Z=E*rg=_X-hQpM&Iki@F#(TYLMkCVp*>Jg`9$Z3O>pTA&}tzmc6U2>
zsRMw+-#xJ%BAK_|H4W%QAYN38H#`CA@U}q-zVuCylZ;XprhiuGGG2W)B%e(-iU;-%
zkc$)=uH1K3KvO=-K}|-(Quxr%)Hp6R^F(H6ixBrEC!+g=RvGtNJT}n{o!|7lA^|zT
z#k-Wjl387^v!ymNeZvhTQmJQcrxg?!I)IY?3Nk&Bi*EW(2gMqNRtKs{&;#@MBYcC2
z1#K7_2m{k77k|*;qwSAm4NaFs*WM3Y)E$2%LNXbeu)Xn<1o`rgr2{vDGA`)jOkK9B
zFvIJ=SU6n}YHoIF8*dY&b*wRV@7=kr)^UCrI0}`Qayi#Ft$Prd?zunp@6+%p{sT>Z
zy-Eo_$n+l-DgNz(mAj2C-PniS5Z!O4hK4MpPW%itEq@=wAW6f!xD<;&>sP|AiW(+(
z0Nlb&k=4Tq?8+cmrps~I{_+|KufA>BMlGzSNuhVX(6;%?b+~AG_ci2i9-NS`1IAt6
zZuElkbrbM4NeQI4bE^|ivr*-O^mH~+CJz~;v>=kX#loU0YKp;}B#Va4`z83PR+r72
z0ev?tAb(n-pby=Ox)8s#D#7DN!~LP5sB>NFo4kKwU#i4G2ZJcINZ{|ZNlb4PMWr3#
znNRR@Azy_vi0dhToPTWP+D1(<_vb(A)r_e`F49G5;&vt_E{PUox@L!RTQz)fh%|Bk
z<m7G)@IummTm5B_P!FE?!YL3V!iT7!XZ*&Os(*xoG1eNb$E3eM#E90vC`N1!cXM}4
zjUrt<0oUd_qPnYUEO=g`5RPBOq(Im`v~b5ti7}S&Qg)zXRHVn#i!oZ>JHXci!6S-S
zCVe<dwqkER1vx9-MwuoxDm{RUzjce{Y5n7an;_UH)m>w>5iY|=VA{6D3}T=cn!@Lk
zUw`lcclodzYa0Q3S`fmxA`taVb)=_iV1iJk-<zSqqDvO+?d41CvVS63#y^11q@mh}
z6nu_{2e%}O@Y=go<gUn&#o+Si?6&8)Vbl6}Y60S_%e8q@FZz&JyVx9sG7@byJ~s6>
zK5FWU5Z64Fqw8e)=+`wA=5HLR@>Ss;5`P^&Z)R0nv4U4FK<+O<w^*9=T<*!VXfwUs
z#PvpU>kc%{gGDcQmidFatJ8(6vyZBlUbjpKVsvey=^7j*?euW>D#8K|T@E5IH_LI?
zb!4*RmjBX;YF^;~7x66XM6}2i9j*O~{ODO|R(#+#x*hhA-eT^qznV3e-glq4IDex2
zBRv}pjA;XI7=GmS()=<(-NXhY;bU$bTX%$ks5i!FDqU?i#XKTJt_BFTjZ*8iHDp<5
zy!S#DwDOPV#*71kEV>9DixXe%2XQ#SB|@Lkb8^xsJt$Noy5i*rO%}T%!_(RJ(fp=}
ztOE>mNo`I7G4I<Xc8V1$EQQzW%zsL@E2Y-Mgt~MhH;wAY&zx(vaMV4#TA;H_8=!=*
zP_|VPo>1!(Qmb9U6-LD8<CM1$1r>u1^yf+VIQq||r5~-M1Y81wW<o5ybSnpGmM1Ga
z#5*FcZ@#j7OTa!Og7I8aJLQA5L7^~5E2dvfRLPSAr4>t0HHQZ2-7nhY4}aIi<Mb~m
zZui3}Nd0h)Ricow4lhByZ_qO%<z|&Wcx9toL}h}ZncnMtcsLPe7KJaco!@q_sUQr|
zU{Ap82v+o30j>a2C7`yFM4|a(4Do8OH~b3=dRJquLo_ljgR>FuAcO1R=$3RE3mY0y
z2&n7r0@oRyrO_*aYz`FCV1IDeQ48MRn=XtmB!O|g6yvweud*lElbCnCRg9fUYMHd=
zHfwFFUPyM&Yb}}7eCJO;LW)`+y|FHc-O?K|-$|3zQ$AAyh`U1GV3kcD_JrDBUCV*7
zgj4iMTvt}7d_E{^uUC7RP3lvb(-ZYFS{VB(WB!C_hs{EK87vm?6Dy65&d4M#gOP!)
zTj)}NQ|xmk3JaL-3w|w}h8UILW#S~JmA(b2g1ov<tC!)K0TYMpJ_CpBJ_NVyJ_Q0&
zE;KPRGBhzUGc+(cD=;x9Ffb=63NKA>WJF<fWgsX-Ix;XaG%+$VG%+zVG%z`r9FYaf
z0XCQMQw1o0?OfY(8^;lS=U42bos_sc_nE3xsz^$tB%72XQi^1k9w2f_AqEK=03A7B
zpT5j4dUpW`pslB*N@&c^rRVhNnVy~{DP>hr70Q~zDGlGYNYTT$E3|S33cfHlVNED(
zsIY6quF%(2g;xP;oG!do(8t-rd#(1A^M#KgK}{@wLWK%_RRmLEK^MVOjV(gLKHe8m
z2M2{%L>r+7l*XVH6m*d)4KM=W@&+^q4*(N3#X?m$k%|DJa#es5pn^(xHt+$XKr^V*
z6_}HtO)D6gph+7O3e=))R0X2ZUfVr1SO@5UYIOqXP#0PoK)uls5kkR&r3pG4uTtT#
zCPW8+v_K(&bYP5C3Z}q<j%F_)gVsXlfSf8<cqBJO#E_6wm_QS~$zVxg38phhBH}lo
z%Bjj0MqvRI>VVYSxQ7Hejd-xL#j)7gg6|ZTp{l^X4*aMq^qdD9b%n#CPf)VxAW)+#
zbc6EXee#vjX-^}w-hozKMf8@{P(r^2SPB|{+4jMwy`KTgJ{b6a`M)SX?)?n=WZxFn
zgjPC_H8I$ISjg0B0*>G^xBd~Cb*kkoQaYpdRa0ZrzJYj?_8}xde*>FdLu)W`A2v5E
z@fcA@LhLG{Rj~pYK|(AGZXd&q_gF=pqP6=0BN?iqax^#$!U%K?QG?p(E%n5y6>O`2
z76(g+kRT-&T;_VonzJ4zVAU3EXr^(>z%<4hXk`stpLyZ>WWWNhfzX2U@>tQI`&dWT
zTPl<Ps1-cxh${!UfW4^p9fVa2Gdl<`5Y(X-OHqYRDF9tAx7#Wrc9Pgbwiy=y=TgtM
zpFEl*>yvUhOR$D~jBEtuz^>rXY9G*l_ugq79}L!0PZJ%Er?rg^M&<*qq$ISFX4a5r
z(dbiVD$l|_Nv0HW7E$BbcdgZ2;#$cLwxMTImdoeNY+Eb&;9Bj_lI$1uVdgGt)T;H3
zG1P8wW^RQ@4;EQ(&~p(jTKaE^jS<5U(z7^oFyxy#BfgneDLWcq@7WH!l4B`<J99}5
zf@vwE#h%&EEgL;<dTdL{ys|VZ<^9{mL?fAB!LpRhxa2*vFSzdP8`8UE9@l1CVee4J
zNNb$<kzSCJ*%(Upom}<nWQx>N?zuIReXS~31najq!yS;1;mBbNOAdz#WQ07{L?lWF
z4k+Z_h!e^Y(cr8sc{KOuvaIKSatOG6vQE;^lKXU8p}*;9`y-O|u;f{!v_ZGnf<@~g
z&qjhVSM?a`JZ+yG-oQ03_k*034vv^d^AV7gr_Ga=^}PLf2IFuu5PviS_amt)@TTij
zd2pYkfy-Dc>EgERMvJjVmf3x>Psgo#Ne;V7E{E)H>SGe_K9fi%IZn2JqA^@z$#V~v
z1!9NPcS$x&y@GJ2jR<FIrR<DOc#=wjCCyT{^T^RH)6FM(%vi|1g2&Fn;u?~k@(Wqh
zvAWW<p#2Io+^^wPuq&n5C>;%wWg&T+=DBHUdxIzM(Bh$l8zM3Y{74T-iJZs}`%5nN
zbrNoqW?8in20K{61+)!+4x1$+9x@@N3;{C4bau|>IXGA>`$PC-W?3c|foqnIb8}05
zsVwWc%y}Q5dDdbSXUTnJt09l((~(;Lh|D@k@+?w1tJ~S(LW>e|9t_~<eau+F+j%Ep
z-jN^|#Qx|ud`aMF&8AA>*+jciRq$nVm&nT{;^yQsULH)dM7a-tZFrtssfgKLMnW>s
z8kKBtnd>EQ&e1i3R8xM%CAjPxr*NmxXs*qyP`!t|Am$qORURq&a~})GF6MY7$$PSu
zIpZ=*I*<isE;DjP`(Ij`IUh1ll9^|YrOZT=Oo}O95-sVLlBw@FK)8VsN{R1=aBG0e
z8(LE)Jj<MWMCeC<2Lpek@fD^@cvcSKaKB8iB-!-|@6ayDm-&wm6}p(WBQ5Y?md0(C
zs<Nu}g5+OHq(OezTXM;-lW>_$%PlC0A36cw6k_ahU82`WMobhm<m*817LYLQaY7p$
z(foMHdRPWqQD|RE3zWO2Mp-&3`L>Sv0^Oi(pgXvtlqt}EZHMpMz-ml%k0Cn}MMXHz
zBK2UMJUZ*I@U(E6_B_vk{os>A%=6>N0Zt9E@<n`mAnoTe*Rw9!${MXUqNGzrr|Ysk
z^FZ~murbGCPLiP<E4GYrnfn-6m~f5;*OsXj6Z5=Scaxmav5cIe3+WWSG0CZWMfXCA
zDipJ$C2r}41(Aeaf4N|9itH7gA3o4}MxH%LjP17R5;eZq365SAQ5g>o!>OvLw>sA4
zX_bQPEaV54KJbl<GE!j+*E43>ifS$8L|AfF#Ti!HmYKjh&Rgi2Q*#>8_T+YJJ!S)j
zZs@wnvAK=;;d1WH*_gnY^$}VXF|&}?v4$bfESYI$RLV>&f6G8R1+hzdn-9}0$ZiQ|
zTv8^wi?UytL0k!PEwPO(gU9n6S*DM$8{cWbY3vidaam%?I+#_-t(2U>wrmS;h`F<u
zts;NAyo&Q_FF0N&Q=+>!dqA)*CG#+p>?^sz*GWiL=>o-@t0BMZ1p09a%(vZMX2f}=
zG4mhy{`R-MfAZq@`?@HPr+15|_55-+zF$mdd-QxZx`mdDAO7*v;rqWHou0l>6*Npn
zH}k@BkHf?1m*VFqMi);s{y?U(xMx9ec`(1M?-l?OdLE7LpV#A?&+r({UWwCS+Y^P2
zFBYT8`10WHW>P~9RGcsB+jl_ZUim(cvPOZD&!gFSmjjvwCVyM`<$FeXJO<s$rlKm|
z?EU@kTUmX0e0K8koU9J3jaJ!a71W<(b5v_>9+&^>7~|9~#=LuW^8Dg081rVG2W{1O
zuu6Z#nyRtIr?s|RPAAj5vi|j9G%2Tdb$LIU)pwKndcma`jzMSQ6y>iE^?Wgg{)>N4
zy9}6J7&!iL@_+0#F|fv)kk4dy;%)v<ARw$K0F54)<91q|2S;yD-v0Ic_z?DFwZ^9k
zZ8G@7S|9Nz3`*Kmb!@`Nt(K^(gjLo`tDcrWmTzEd*5z&4vn}jm+sWyV@7|uGZSU9H
zrr~<<#Nbc11OB|&q{rG;ZDH9#c~~Bm&&reX1=x66zJDrTgQe%?I|xOeC>Y^_UWTN4
zbosD=ugmf5^5OP+QhzDyo7w0$3|80U@}~U!`~Bzo4mWi<0k$xF(MDLi6)>*-3VUI?
zsJV`V+~V`BrlrK;uKZ8=pL*8gey6B+ar*51<pp!E*K=<&_pmjJq}{jW9+_XwJBNQk
zXOGOx+kb#H<f}uH-zl2DfB)0Tha)D*+I1wU*pTEPX;9ysq^CqvL((YI(=5g1^24v`
z!whK~F!t+kU3GcdDdrxYy*zw=4m=$lt=-7YA!?JupMfq(a#iR?-LxdB+J+%hNrsMr
ziyN>P?VR<k+9~v&y?b}``VCn1=ClfHw@8IsM1SKiVCYyRtA+Q`k~M~H>;0~6OP`{3
z^YNFZ|GIYW6o#L@IzB!BC)*jnZl|N)yNTb@P7DOEwp`n5VgW91BB&EOA6P>-UGzHz
z&a;DqvuCe}tqliqO!+{z&UcslpU>7odBA3IXn4kC9p_MbMseaF6izS7w-8c40Iwq+
z@qelOG#g#kbPiF8qbC-BsTXZEl(_*;z{~n-JeiDkI0^}LS>Ilb=AX;@j=v};tiN1N
zMz`ot{5QrU^Lo-a_T~ZRsc)wYqkUo^pO;6$Sj_mZ@|Wdu5cSjgE5|NnpzDs``2-=a
zTuBdiSM_XuIi1yXEdRdhU=BN-IUi1sPJa&G^7>kP=HPGM!I_irm)<IfI`-S{#@Dc7
z>h6g$%xms}t9<0H;9#fo<mBn`PiOCdgNqGGFPtNJizz%&9vyhs<-C0oo({5;5#_*n
z;pc>J+~I@nr(Gg;I)a{EygWJm35mGa5SkT+W|!y}AB*T@_ODcj34Cms&|2@l7=N0?
z1A_^Kk@@9#yckceYLOmOG@#8h%tDqM^ll6ra#hf-e}jdEp?l@Fll$%8E7sXgC*S$O
z;fIUYOmA9GZ`IHnJpP{9x1^UZAh^_y;S%y3=>B0v6sHJ2#}GCD1!MSVwtF036TWlE
zrto~-hT>U0g4yJ*M>kID`FyKOjem@;_mhV?h1h)Cr&xRSX)*}9_3fBJw(B6@epZFp
zosRIAPd~gpJtwzsxOY|<Vm<!ualp6U@mso`9sYtGy>xTe$vgORjrYFhzejj)y{B+{
z{yy|nTyYpayStoTjqh%N#qsrZ4Rc@CbGR|2%{f4mN>E}^=s;NnXAsxp!he`1y=Ycg
zVM1e0VUk>LD=lxiC!3kwOkgI1%|#QN7d<&v5%CoID2`D?<A_L6FO${MMt)$YHNI*H
zF1#DYgd(_=VF8l6BBt^KTtek?fy1%0Vv6KM94%7lU$Q%KdMa*<59C!&b40*t!cW6n
zb0!oj>71M5Z`0?@w9wk-{C~61MlCbSCiV;xN$3`3npbFRWqJqC0a85pN;xn4I1B}_
z3m-l$=n*Sn%N~yAHMR_2e0L%T{gDN(+46Win=f$F7B23UKaTQ)(lF+q<EzEzIsP>Q
z_q~|Dy#x0m32{yCvk6h}rF0*V?gLVllZYxW5Sbw&yE~%Zo8>+t+kZ!7f&k==z~hE^
z-0pa~?|J)hd>@WY0*;dovqL!k5e^%?r|m<EeMr8ui0}|;F>w~t21fc@ngPnNJIdi3
z*B(kgSn67$)W$ARTE7j-xI4<>yU9Mv!TL9;!(|XC%{D00?kI;Z2m2`P#zm-&*c3Ky
zfihK(SeJuWbA6PXw|`29OOv)isdh&>eAU)R88>feu`JD2RO;P94&RgYK!(BQv0geH
zA-5>?HYgu)atz;3^-&HFkF*Y@b=#nP#Az~o%h5+U+&pgW7T+dZrbnDH!}kz<l>RH>
zQf_g(4a!FxJ;Rp-eUx$Ix>Q<b3u+sbk2rdUckLd^IM_XS*nh0yvf2jaBaWWo)v%9J
zZ%lNQ7RR{Vipv#8&+E}mJ%{_@^Z{?1d+<ENOAG#ODh>Z(d<FL-OHc}awN~)Os$iob
z1LRu#16cU}xIw>Kr(bFJwXvb;>+^Ivtr+s^VKISw&pfkM<n4;270r>t`dmA33|E(;
zaq~gZWJE2}On>d`S^ZmKx?7uuHhDM<HJgU!hqL-ii>0eaH+pp1php|2X9XS|TRpC;
z$E@gV+s<mkq(RQ9#Ja>kOI}jkJTS#iRBx`9W7XwYt*}D1tg0@nLBLWSC@KjkDs6(I
zTCUS7<z(k7R4ui3HCZ&U@lZykBr4ZIr5o+|wg}etcYjZ(mru?YquJv7f`7HB`0n}j
zbh@~kF6w>teZdEytkmD*t*~EfuvYbJE!OIOt;1Two2mS9d^=wBkaYTf>_c8QdQ`+g
z;ky@$`W68@`3zWH63>9rSK=A)`3(AceDg3Pllf;F5?W`*WzPY!dx#&X!DbBf3>f&u
zczy;9e1B`s&&W|#i3+5rk|WSemHMEX$(lZ^(FCL@u(El5iSJ$hLNw`K9l-ScI)v(a
zbpSW^^#NkO3k~qW^s?IkV{Su4zM~ZJ=q?_FW2$ZypfR>v1z=3(fBx{PodBm$RUf37
zzu$X^Rkq_Uu!C7ND$;&g-x)#>20ZoEt{m5b;Z-9E|Ca@vL+7Iq|Az(scKO@q@33i`
zZJY@*0~mm>iU()-(P%N6OmFu1z+9fK&0#3Q6LE+CokNaZH}xr`2Ibp%y*xQz-Pd;q
zgrTtQ1?#`8**&+H>!Jm5Q8_m>L_$V0HAF-?Mlv-*L`E}0H%3G=LpU-rF*89pMm``s
zIX5&!LPj$+L_|48GBrX(Ml(V;Mnp41I5ILZGeI~;K3xhgOl59obZ8(oH8z(4S_LV8
zCDTi6OmP&)@pJC<_A%{r+L=D};nfGDC>_-r?Rb@XS4&ZS6HHREkf>OQkPr)JVJ9}$
zVlS~3v9#+}VkME-h{TTn_jL2gZ_fSS|NTGCh=}})MB>YE1+Idq+@BXxN5BS23K4Wt
z+eb=38EmAMC&f?>1!@DN3aEq=)b^5psvrsD)b^07p#~<Y^^;Oi3scl~lhRNJ7pd(c
z)k6ldDybj7`c~Kh-71py+6HLjwN22?&vue;s|$L-ceI_SjEgtJ7T5|tE=OvBMreX&
zXi@3-84j_t<e%IIK2?uO{-)P@nScl8Gxxzx@B_=K3@`gQ_GbQFc5d89?B~LNff*Y#
z-;8g8y_v6%BR0Mf`$g@Cyvq2jPwE#s3<qIIWqQ;f9Dq?c0!26qhu|0-hA}t~6L1zr
zR2JKPmg8^|PQht71JiI$rIhn=7vK^r<&La{pEGa`W?>HIVF4Cl36|kHuZhO?k@<`k
zHCohYOrtT4cC>PprvpBuLgih5-czN@mo`sTD!(3kN~$LBc&b({wtA{jeSOPQN_B0}
zQ>{js_4(2o^>=xy)2Q^>Q@uuOZ#-o*QTXF2tBIAYrv^=YnDo@BWrf&Nla_sb?x|Vh
ziSJ=YQ=xt0>ED5w-oV^!U@0BA@hNb7HL%hbxce<|?^R%REb#De;L-aoz>|f*vrOQ{
z`l{$Kqr;45upyuYj5{~~uhI-Q0<?e?HGcUZOz^f`{sV(<Y%!M$rUf1gI5spk3MC~)
GPeuy*y1u9Y

diff --git a/lib.c b/lib.c
index de783ee..75ba887 100644
--- a/lib.c
+++ b/lib.c
@@ -114,6 +114,16 @@ struct symbol* symtable_put_name(struct symtable * t, const char * id)
     ++ (t->size);
     return s;
 }
+struct symbol* symtable_put_name_float(struct symtable * t, const char * id)
+{
+    if(t->size==t->capacity)
+      symtable_grow(t);
+    struct symbol *s = &(t->symbols[t->size]);
+    s->kind = NAME_FLOAT;
+    strcpy(s->u.name,id);
+    ++ (t->size);
+    return s;
+}
 
 struct symbol* symtable_put_chaine(struct symtable * t, const char * chaine) 
 {
@@ -166,32 +176,49 @@ struct symbol* symtable_put_array(struct symtable * t, const char* var_name, uns
     return s;
 }
 
+struct symbol *newtemp(struct symtable * t, enum var_type ty)
+{
+    struct symbol* s;
+    name_t name;
+    sprintf(name,"t%d",t->temporary);
+    if(ty == INTEGER)
+        s = symtable_put_name(t,name);
+    else if( ty == FLOAT)
+        s = symtable_put_name_float(t,name);
+    else
+        fprintf(stderr,"wrong var_type given, or do not exist yet\n");
+    ++ (t->temporary);   
+    return s;
+}
+
 void symtable_dump(struct symtable * t, FILE* fout)
 {
     unsigned int i;
     for ( i=0 ; i<t->size; i++ )
     {
-      if(t->symbols[i].kind==CONSTANT_INT)
-        fprintf(fout,"#       %p = %ld\n",&(t->symbols[i]),t->symbols[i].u.value_int);
-      else if(t->symbols[i].kind==CONSTANT_FLOAT)
-        fprintf(fout,"#       %p = %0.2f\n",&(t->symbols[i]),t->symbols[i].u.value_float);
-      else if(t->symbols[i].kind==NAME)
-        fprintf(fout,"#       %p = %s\n",&(t->symbols[i]),t->symbols[i].u.name);
-      else if(t->symbols[i].kind==NAME_LOC)
-        fprintf(fout,"#       %p = %s (in the scope of the '%s' function)\n",&(t->symbols[i]),t->symbols[i].u.name,t->symbols[i].scope_function);
-      else if(t->symbols[i].kind==CHAIN)
-        fprintf(fout,"#       %p = %s\n",&(t->symbols[i]),t->symbols[i].u.chaine);
-      else if(t->symbols[i].kind==ARRAY){
-        fprintf(fout,"#       %p = (%s,",&(t->symbols[i]),t->symbols[i].u.arr.name);
-        if(t->symbols[i].u.arr.size[0]->kind == NAME_LOC || t->symbols[i].u.arr.size[0]->kind == NAME)
-          fprintf(fout,"%s",t->symbols[i].u.arr.size[0]->u.name);
+        if(t->symbols[i].kind==CONSTANT_INT)
+            fprintf(fout,"#       %p = %ld\n",&(t->symbols[i]),t->symbols[i].u.value_int);
+        else if(t->symbols[i].kind==CONSTANT_FLOAT)
+            fprintf(fout,"#       %p = %0.2f\n",&(t->symbols[i]),t->symbols[i].u.value_float);
+        else if(t->symbols[i].kind==NAME)
+            fprintf(fout,"#       %p = %s (INTEGER)\n",&(t->symbols[i]),t->symbols[i].u.name);
+        else if(t->symbols[i].kind==NAME_FLOAT)
+            fprintf(fout,"#       %p = %s (FLOAT)\n",&(t->symbols[i]),t->symbols[i].u.name);
+        else if(t->symbols[i].kind==NAME_LOC)
+            fprintf(fout,"#       %p = %s (in the scope of the '%s' function type : INTEGER)\n",&(t->symbols[i]),t->symbols[i].u.name,t->symbols[i].scope_function);
+        else if(t->symbols[i].kind==CHAIN)
+            fprintf(fout,"#       %p = %s\n",&(t->symbols[i]),t->symbols[i].u.chaine);
+        else if(t->symbols[i].kind==ARRAY){
+            fprintf(fout,"#       %p = (%s,",&(t->symbols[i]),t->symbols[i].u.arr.name);
+        if(t->symbols[i].u.arr.size[0]->kind == NAME_LOC || t->symbols[i].u.arr.size[0]->kind == NAME || t->symbols[i].u.arr.size[0]->kind == NAME_FLOAT)
+            fprintf(fout,"%s",t->symbols[i].u.arr.size[0]->u.name);
         else if(t->symbols[i].u.arr.size[0]->kind == CONSTANT_INT)
-          fprintf(fout,"%ld",t->symbols[i].u.arr.size[0]->u.value_int);
+            fprintf(fout,"%ld",t->symbols[i].u.arr.size[0]->u.value_int);
         else if(t->symbols[i].u.arr.size[0]->kind == CONSTANT_FLOAT)
-          fprintf(fout,"%0.2f",t->symbols[i].u.arr.size[0]->u.value_float);
+            fprintf(fout,"%0.2f",t->symbols[i].u.arr.size[0]->u.value_float);
         else{
-          printf("BUG array size kind:%d\n",t->symbols[i].u.arr.size[0]->kind); 
-          exit(1);
+            printf("BUG array size kind:%d\n",t->symbols[i].u.arr.size[0]->kind); 
+            exit(1);
         }
         fprintf(fout,") (in the scope of the '%s' function)\n",t->symbols[i].scope_function);
       }
@@ -247,16 +274,6 @@ void gencode(struct code * c,
     ++ (c->nextquad);
 }
 
-struct symbol *newtemp(struct symtable * t)
-{
-  struct symbol* s;
-  name_t name;
-  sprintf(name,"t%d",t->temporary);
-  s = symtable_put_name(t,name);
-  ++ (t->temporary);
-  return s;
-}
-
 static void symbol_dump(struct symbol* s, FILE* fout)
 {
     switch ( s->kind )
@@ -264,6 +281,9 @@ static void symbol_dump(struct symbol* s, FILE* fout)
         case NAME:
             fprintf(fout,"%s",s->u.name);
             break;
+        case NAME_FLOAT:
+            fprintf(fout,"%s",s->u.name);
+            break;
         case CONSTANT_INT:
             fprintf(fout,"%ld",s->u.value_int);
             break;
@@ -428,9 +448,11 @@ void code_mips_dump(struct symtable * t, struct code * c, FILE* fout){
             fprintf(fout,"\t_%s: .word 0\n",t->symbols[i].u.name);
         }
         else if(t->symbols[i].kind == NAME){
-            fprintf(fout,"\t_%s: .word 0\n",t->symbols[i].u.name);
+            fprintf(fout,"\t%s: .word 0\n",t->symbols[i].u.name);
+        }
+        else if(t->symbols[i].kind == NAME_FLOAT){
+            fprintf(fout,"\t%s: .float 0\n",t->symbols[i].u.name);
         } 
-        // this prevent the declaration fo some temp necessary but is also necessary to allocat the memory tab TODO resolve this issue
         else if (t->symbols[i].kind == ARRAY){
             fprintf(fout,"\t_%s: .word 0\n",t->symbols[i].u.name);
         }
@@ -452,22 +474,22 @@ void code_mips_dump(struct symtable * t, struct code * c, FILE* fout){
         switch (c->quads[i].kind)
         {
             case BOP_PLUS:
-                print_bop_plus(c,fout,i);
+                print_bop_plus(c,t,fout,i);
                 break;
             case BOP_MINUS:
-                print_bop_minus(c,fout,i);
+                print_bop_minus(c,t,fout,i);
                 break;
             case BOP_MULT:
-                print_bop_mult(c,fout,i);
+                print_bop_mult(c,t,fout,i);
                 break;
             case BOP_DIV:
-                print_bop_div(c,fout,i);
+                print_bop_div(c,t,fout,i);
                 break;
             case BOP_MOD:
-                print_bop_mod(c,fout,i);
+                print_bop_mod(c,t,fout,i);
                 break;
             case UOP_MINUS:
-                print_uop_minus(c,fout,i);
+                print_uop_minus(c,t,fout,i);
                 break;
             case COPY_ARRAY:
                 print_copy_array(t,c,fout,i);
@@ -509,8 +531,10 @@ void code_free(struct code * c)
 }
 
 void free_exit(int code, struct code* c, struct symtable* t, FILE* fname){
-    code_free(c);
-    symtable_free(t);
+    if( c != NULL)
+        code_free(c);
+    if( t != NULL)
+        symtable_free(t);
     if(fname!=NULL){fclose(fname);}
     exit(code);
 }
@@ -526,65 +550,162 @@ void print_main_def(FILE* fout){
 }
 
 // -------- ARITHMETIC RELATED --------
-
-void print_bop_plus(struct code * c, FILE* fout,int i)
+void print_bop_plus(struct code * c, struct symtable* t, FILE* fout,int i)
 {
-    //Check if we have variable names or just integers for sym2 and sym3
-    print_nameOrInteger(c,fout,i,0b110);
-    //Do the operation and save result in wanted variable
-    fprintf(fout,"\tadd $t0, $t0, $t1\n");
-    fprintf(fout,"\tsw $t0, _%s\n",c->quads[i].sym1->u.name);
+    #ifdef LIBDEBUG
+    fprintf(fout,"%s# start of x + y section\n",tabulation);
+    #endif
+    if(ISFLOAT(c->quads[i].sym2) || ISFLOAT(c->quads[i].sym3) )
+    { // float minus
+        load_float_bop_macro("$f0","$f1","$t0",c->quads[i].sym2,c->quads[i].sym3,t,fout);
+        fprintf(fout,"%sadd.s $f2, $f0, $f1\n",tabulation);
+        load_addr_macro("$t0",c->quads[i].sym1,t,fout);
+        fprintf(fout,"%sswc1 $f2, 0($t0)\n",tabulation);
+    } else { // integer minus
+        //Check if we have variable names or just integers
+        print_nameOrInteger(c,fout,i,0b110);
+        //Do the operation and save result in wanted variable
+        fprintf(fout,"%sadd $t0, $t0, $t1\n",tabulation);
+        fprintf(fout,"%ssw $t0, %s\n",tabulation,c->quads[i].sym1->u.name);
+    }
+    #ifdef LIBDEBUG
+    fprintf(fout,"%s# end of x + y section\n",tabulation);
+    #endif
 }
 
-void print_bop_minus(struct code * c, FILE* fout,int i)
+
+void print_bop_minus(struct code * c, struct symtable* t, FILE* fout,int i)
 {
-    //Check if we have variable names or just integers
-    print_nameOrInteger(c,fout,i,0b110);
-    //Do the operation and save result in wanted variable
-    fprintf(fout,"\tsub $t0, $t0, $t1\n");
-    fprintf(fout,"\tsw $t0, _%s\n",c->quads[i].sym1->u.name);
+    #ifdef LIBDEBUG
+    fprintf(fout,"%s# start of x - y section\n",tabulation);
+    #endif
+    if(ISFLOAT(c->quads[i].sym2) || ISFLOAT(c->quads[i].sym3) )
+    { // float minus
+        load_float_bop_macro("$f0","$f1","$t0",c->quads[i].sym2,c->quads[i].sym3,t,fout);
+        fprintf(fout,"%ssub.s $f2, $f0, $f1\n",tabulation);
+        load_addr_macro("$t0",c->quads[i].sym1,t,fout);
+        fprintf(fout,"%sswc1 $f2, 0($t0)\n",tabulation);
+    } else { // integer minus
+        //Check if we have variable names or just integers
+        print_nameOrInteger(c,fout,i,0b110);
+        //Do the operation and save result in wanted variable
+        fprintf(fout,"%ssub $t0, $t0, $t1\n",tabulation);
+        fprintf(fout,"%ssw $t0, %s\n",tabulation,c->quads[i].sym1->u.name);
+    }
+    #ifdef LIBDEBUG
+    fprintf(fout,"%s# end of x - y section\n",tabulation);
+    #endif
 }
 
-void print_bop_mult(struct code * c, FILE* fout,int i)
+void print_bop_mult(struct code * c, struct symtable* t, FILE* fout,int i)
 {
-    //Check if we have variable names or just integers for sym2 and sym3
-    print_nameOrInteger(c,fout,i,0b110);
-    //Do the operation and save result in wanted variable
-    fprintf(fout,"%smul $t0, $t0, $t1\n",tabulation);
-    fprintf(fout,"%ssw $t0, _%s\n",tabulation,c->quads[i].sym1->u.name);
+    #ifdef LIBDEBUG
+    fprintf(fout,"%s# start of x * y section\n",tabulation);
+    #endif
+    if(ISFLOAT(c->quads[i].sym2) || ISFLOAT(c->quads[i].sym3) )
+    { // float multiplication
+        load_float_bop_macro("$f0","$f1","$t0",c->quads[i].sym2,c->quads[i].sym3,t,fout);
+        fprintf(fout,"%smul.s $f2, $f0, $f1\n",tabulation);
+        load_addr_macro("$t0",c->quads[i].sym1,t,fout);
+        fprintf(fout,"%sswc1 $f2, 0($t0)\n",tabulation);
+    } else { // integer multiplication
+        //Check if we have variable names or just integers for sym2 and sym3
+        print_nameOrInteger(c,fout,i,0b110);
+        //Do the operation and save result in wanted variable
+        fprintf(fout,"%smul $t0, $t0, $t1\n",tabulation);
+        fprintf(fout,"%ssw $t0, %s\n",tabulation,c->quads[i].sym1->u.name);
+    }
+    #ifdef LIBDEBUG
+    fprintf(fout,"%s# end of x * y section\n",tabulation);
+    #endif
 }
 
-void print_bop_div(struct code * c, FILE* fout,int i)
+void print_bop_div(struct code * c, struct symtable* t, FILE* fout,int i)
 {
-    //Check if we have variable names or just integers for sym2 and sym3
-    print_nameOrInteger(c,fout,i,0b110);
-    //Do the operation and save result in wanted variable
-    fprintf(fout,"%sdiv $t0, $t0, $t1\n",tabulation);
-    fprintf(fout,"%ssw $t0, _%s\n",tabulation,c->quads[i].sym1->u.name);
+    #ifdef LIBDEBUG
+    fprintf(fout,"%s# start of x / y section\n",tabulation);
+    #endif
+    if(ISFLOAT(c->quads[i].sym2) || ISFLOAT(c->quads[i].sym3) )
+    { // float division
+        load_float_bop_macro("$f0","$f1","$t0",c->quads[i].sym2,c->quads[i].sym3,t,fout);
+        fprintf(fout,"%sdiv.s $f2, $f0, $f1\n",tabulation);
+        load_addr_macro("$t0",c->quads[i].sym1,t,fout);
+        fprintf(fout,"%sswc1 $f2, 0($t0)\n",tabulation);
+    } else { // integer division
+        //Check if we have variable names or just integers for sym2 and sym3
+        print_nameOrInteger(c,fout,i,0b110);
+        //Do the operation and save result in wanted variable
+        fprintf(fout,"%sdiv $t0, $t0, $t1\n",tabulation);
+        fprintf(fout,"%ssw $t0, %s\n",tabulation,c->quads[i].sym1->u.name);
+    }
+    #ifdef LIBDEBUG
+    fprintf(fout,"%s# end of x / y section\n",tabulation);
+    #endif
 }
 
-void print_bop_mod(struct code * c, FILE* fout,int i)
+void print_bop_mod(struct code * c, struct symtable* t, FILE* fout,int i)
 {
-    //Check if we have variable names or just integers for sym2 and sym3
-    print_nameOrInteger(c,fout,i,0b110);
-    //Do the operation and save result in wanted variable
-    fprintf(fout,"%sdiv $t0, $t0, $t1\n",tabulation);
-    fprintf(fout,"%smfhi $t0\n",tabulation);
-    fprintf(fout,"%ssw $t0, _%s\n",tabulation,c->quads[i].sym1->u.name);
+    #ifdef LIBDEBUG
+    fprintf(fout,"%s# start of x %% y section\n",tabulation);
+    #endif
+    if(ISFLOAT(c->quads[i].sym2) || ISFLOAT(c->quads[i].sym3) )
+    { // float modulo
+        load_float_bop_macro("$f0","$f1","$t0",c->quads[i].sym2,c->quads[i].sym3,t,fout);
+        // get the quotient 
+        fprintf(fout,"%sdiv.s $f2, $f0, $f1\n",tabulation);
+        // floor it down
+        fprintf(fout,"%sfloor.w.s $f3, $f2 \n",tabulation);
+        // the above operation turned it into the integer format we need to turn it back to a float
+        fprintf(fout,"%scvt.s.w $f3, $f3 \n",tabulation);
+        // we now multiply divisor and the obtained quotient
+        fprintf(fout,"%smul.s $f4, $f3, $f1\n",tabulation);
+        // we substract this to the dividend we obtain the remainder of the division hence we have the mod
+        fprintf(fout,"%ssub.s $f5, $f0, $f4\n",tabulation);
+        load_addr_macro("$t0",c->quads[i].sym1,t,fout);
+        fprintf(fout,"%sswc1 $f5, 0($t0)\n",tabulation);
+    } else { // integer modulo
+        //Check if we have variable names or just integers for sym2 and sym3
+        print_nameOrInteger(c,fout,i,0b110);
+        //Do the operation and save result in wanted variable
+        fprintf(fout,"%sdiv $t0, $t0, $t1\n",tabulation);
+        fprintf(fout,"%smfhi $t0\n",tabulation);
+        fprintf(fout,"%ssw $t0, %s\n",tabulation,c->quads[i].sym1->u.name);
+    }
+    #ifdef LIBDEBUG
+    fprintf(fout,"%s# end of x %% y section\n",tabulation);
+    #endif
 }
 
-void print_uop_minus(struct code * c, FILE* fout,int i)
+void print_uop_minus(struct code * c, struct symtable* t, FILE* fout,int i)
 {
-    fprintf(fout,"%slw $t0, _%s\n",tabulation,c->quads[i].sym1->u.name);
-    //Check if we have variable names or just integers
-    if(c->quads[i].sym2->kind == NAME || c->quads[i].sym2->kind == NAME_LOC)
-        fprintf(fout,"%slw $t1, _%s\n",tabulation,c->quads[i].sym2->u.name);
-    else if(c->quads[i].sym2->kind == CONSTANT_INT)
-        fprintf(fout,"%sli $t1, %ld\n",tabulation,c->quads[i].sym2->u.value_int);
+    #ifdef LIBDEBUG
+    fprintf(fout,"%s# start of -x section\n",tabulation);
+    #endif
+    if(ISFLOAT(c->quads[i].sym2))
+    { // float uop minus
+            if(!ISFLOAT(c->quads[i].sym2))
+        { // if sym2 is an integer convert it to a float and store it in $f0
+                convert_int_to_float("$f0","$t0",c->quads[i].sym2,t,fout);
+        } else { // store it in $f0
+                load_symbol_macro("$f0","$t0",c->quads[i].sym2,t,fout);
+        }
+        fprintf(fout,"%sneg.s $f1, $f0\n",tabulation);
+        load_addr_macro("$t0",c->quads[i].sym1,t,fout);
+        fprintf(fout,"%sswc1 $f1, 0($t0)\n",tabulation);
+    } else {
+        //Check if we have variable names or just integers
+        if(c->quads[i].sym2->kind == NAME || c->quads[i].sym2->kind == NAME_LOC)
+            fprintf(fout,"%slw $t0, %s\n",tabulation,c->quads[i].sym2->u.name);
+        else if(c->quads[i].sym2->kind == CONSTANT_INT)
+            fprintf(fout,"%sli $t0, %ld\n",tabulation,c->quads[i].sym2->u.value_int);
 
-    //Do the operation and save result in wanted variable
-    fprintf(fout,"%ssub $t0, $t0, $t1\n",tabulation);
-    fprintf(fout,"%ssw $t0, _%s\n",tabulation,c->quads[i].sym1->u.name);
+        //Do the operation and save result in wanted variable
+        fprintf(fout,"%sneg $t1, $t0\n",tabulation);
+        fprintf(fout,"%ssw $t1, %s\n",tabulation,c->quads[i].sym1->u.name);
+    }
+    #ifdef LIBDEBUG
+    fprintf(fout,"%s# end of -x section\n",tabulation);
+    #endif
 }
 
 // -------- PRINT RELATED --------
@@ -595,11 +716,11 @@ void print_print(struct symtable * t,struct code * c, FILE* fout,int i)
         case ARRAY:
             // TODO + WIP solution temporaire, quand les fonctions seront implémentés à remplacer par une fonction pour éviter le code spaghetti
             //  putting the array size in $t2
-            load_symbol_macro("$t2",c->quads[i].sym1->u.arr.dim1size,t,fout);
+            load_symbol_macro("$t2","NULL",c->quads[i].sym1->u.arr.dim1size,t,fout);
             // to avoid doing a mult at each iterations we multiply the size by 4 (each elements need a 4 bytes incrementation)
             fprintf(fout,"%smul $t0, $t2, 4\n",tabulation);
             //  putting array address in $t1
-            load_symbol_macro("$t1",c->quads[i].sym1,t,fout);
+            load_symbol_macro("$t1","NULL",c->quads[i].sym1,t,fout);
             fprintf(fout,"%sli $t2, 0\n",tabulation);
 
 
@@ -615,7 +736,7 @@ void print_print(struct symtable * t,struct code * c, FILE* fout,int i)
             // load the current float element in the
             fprintf(fout,"%slwc1 $f0, ($t3)\n",tabulation);
             // function that print the asked register
-            print_reg("f0",fout,1);
+            print_reg("f0",fout,FLOAT);
             // macro that print a space
             fprintf(fout,"%sSPACE\n",tabulation);
             // increment to next address
@@ -649,13 +770,13 @@ void print_printstr(struct symtable * t, struct code * c, FILE* fout,int i)
 }
 
 
-void print_reg(char * reg,FILE * fout, int type){
-    switch(type) {
-        case 0:
+void print_reg(char * reg,FILE * fout, enum var_type ty){
+    switch(ty) {
+        case INTEGER:
             fprintf(fout,"%smove $a0, $%s\n",tabulation,reg);
             fprintf(fout,"%sli $v0, 1\n",tabulation);
             break;
-        case 1:
+        case FLOAT:
             fprintf(fout,"%smov.s $f12, $%s\n",tabulation,reg);
             fprintf(fout,"%sli $v0, 2\n",tabulation);
             break;
@@ -683,13 +804,13 @@ void print_copy_array(struct symtable * t, struct code * c, FILE* fout,int i)
         exit(1);
     }
     // adress of the array element we want to copy
-    load_tab_addr_macro("$t0", 1, 2, c->quads[i].sym2,c->quads[i].sym3,t,fout);
+    load_tab_addr_macro("$t0", "$t1", "$t2", c->quads[i].sym2,c->quads[i].sym3,t,fout);
     // adress of the place we want to copy the array element in
     load_addr_macro("$t1",c->quads[i].sym1,t,fout);
-    // load in $t2 what's inside the array element
-    fprintf(fout,"%slw $t2, ($t0)\n",tabulation);
+    // load in $f0 what's inside the array element
+    fprintf(fout,"%slwc1 $f0, ($t0)\n",tabulation);
     // store it in the destination
-    fprintf(fout,"%ssw $t2, ($t1)\n",tabulation);
+    fprintf(fout,"%sswc1 $f0, ($t1)\n",tabulation);
 
     #ifdef LIBDEBUG
     fprintf(fout,"%s# end of copy_array section\n",tabulation);
@@ -708,7 +829,7 @@ void print_allocate_array(struct symtable * t, struct code * c, FILE* fout,int i
     // number for the sbrk primitive call
     fprintf(fout,"%sli $v0, 9\n",tabulation);
     // based on the type of the var indicating the size of the array we do different operations to end up with the nb of bytes we should allocate is $a0
-    load_symbol_alloc_macro("$a0",0,c->quads[i].sym1->u.arr.dim1size,t,fout);
+    load_symbol_alloc_macro("$a0","$t0",c->quads[i].sym1->u.arr.dim1size,t,fout);
     // call sbrk
     fprintf(fout,"%ssyscall\n",tabulation);
     // save the allocated array ptr returned in $v0 by syscall in the assigned .data var
@@ -730,9 +851,9 @@ void print_aff_array(struct symtable * t, struct code * c, FILE* fout,int i)
     }
     // V alternative, effectue directement le*4 en calcul vu qu'on devrait passer par un load immediate dans tout les cas 
     // fprintf(fout,"%sla $t0, %s\n",tabulation,c->quads[i].sym1->u.name);
-    load_tab_addr_macro("$t0", 1, 2, c->quads[i].sym1,c->quads[i].sym2,t,fout);
-    load_symbol_macro("$t1",c->quads[i].sym3,t,fout);
-    fprintf(fout,"%ssw $t1, ($t0)\n",tabulation);
+    load_tab_addr_macro("$t0", "$t1", "$t2", c->quads[i].sym1,c->quads[i].sym2,t,fout);
+    load_symbol_macro("$f0","$t2",c->quads[i].sym3,t,fout);// sym3 is a float so the tmp register will be
+    fprintf(fout,"%sswc1 $f0, ($t0)\n",tabulation);
     #ifdef LIBDEBUG
     fprintf(fout,"%s# end of aff_array section\n",tabulation);
     #endif
@@ -778,22 +899,23 @@ void print_nameOrInteger(struct code * c, FILE* fout,int i,int sym)
 
 
 // -------- MACROS --------
-void load_symbol_alloc_macro(char * dest, int tmp_used, struct symbol * sym, struct symtable * t, FILE* fout){
+
+void load_symbol_alloc_macro(char * dest, char * tmp_used, struct symbol * sym, struct symtable * t, FILE* fout){
     if(sym->kind == CONSTANT_INT) // var = 3
         // in this case the value is a constant int we can do a load immediate in $a0 with value*4
         fprintf(fout,"%sli %s, %ld\n",tabulation,dest,(sym->u.value_int)*4);
     // in other cases we need to load the value from the label of the corresponding symbol
     else if( sym->kind == NAME || sym->kind == NAME_LOC ) { // var = 4*3
-        fprintf(fout,"%slw $t%d, _%s\n",tabulation,tmp_used,(sym->u.name));
+        fprintf(fout,"%slw %s, %s\n",tabulation,tmp_used,(sym->u.name));
     } else { // array[4] = array[5]+3*4
-        fprintf(fout,"%slw $t%d, temp%d\n",tabulation,tmp_used,indice_temp(t,sym));
+        fprintf(fout,"%slw %s, temp%d\n",tabulation,tmp_used,indice_temp(t,sym));
     }
     // if we don't have a CONST INT we loaded the nb of int/floats we want to stock in the array, in this case
     if(sym->kind  != CONSTANT_INT)
-        fprintf(fout,"%ssll %s, $t%d, 2\n",tabulation,dest,tmp_used);
+        fprintf(fout,"%ssll %s, %s, 2\n",tabulation,dest,tmp_used);
 }
 
-void load_symbol_macro(char * dest, struct symbol * sym, struct symtable * t, FILE* fout){
+void load_symbol_macro(char * dest, char * tmp_used, struct symbol * sym, struct symtable * t, FILE* fout){
     if(sym->kind == CONSTANT_INT) // var = 3
         // in this case the value is a constant int we can do a load immediate in $a0 with value*4
         fprintf(fout,"%sli %s, %ld\n",tabulation,dest,(sym->u.value_int));
@@ -805,41 +927,72 @@ void load_symbol_macro(char * dest, struct symbol * sym, struct symtable * t, FI
         fprintf(fout,"%slw %s, temp_float\n",tabulation,dest);
     }
     // in other cases we need to load the value from the label of the corresponding symbol
-    else if( sym->kind == NAME || sym->kind == ARRAY) { // var = 4*3
-        fprintf(fout,"%slw %s, _%s\n",tabulation,dest,(sym->u.name));
+    else if( sym->kind == NAME || sym->kind == NAME_LOC || sym->kind == ARRAY) { // var = 4*3
+        fprintf(fout,"%slw %s, %s\n",tabulation,dest,(sym->u.name));
+    } else if (sym->kind == NAME_FLOAT || sym->kind == CONSTANT_FLOAT) {
+        if( sym->kind == NAME_FLOAT )
+            fprintf(fout,"%sla %s, %s\n",tabulation,tmp_used,(sym->u.name));
+        else
+            fprintf(fout,"%sla %s, temp%d\n",tabulation,tmp_used,indice_temp(t,sym));
+        fprintf(fout,"%slwc1 %s, 0(%s)\n",tabulation,dest,tmp_used);
     } else { // array[4] = array[5]+3*4
         fprintf(fout,"%slw %s, temp%d\n",tabulation,dest,indice_temp(t,sym));
     }
 }
 
 
-void load_tab_addr_macro(char * dest,int tmp_used1, int tmp_used2, struct symbol * sym_addr, struct symbol * sym_index, struct symtable * t, FILE* fout){
-    fprintf(fout,"%slw $t%d, _%s\n",tabulation,tmp_used2,sym_addr->u.name);
+void load_tab_addr_macro(char * dest,char * tmp_used1, char * tmp_used2, struct symbol * sym_addr, struct symbol * sym_index, struct symtable * t, FILE* fout){
+    fprintf(fout,"%slw %s, %s\n",tabulation,tmp_used2,sym_addr->u.name);
     if(sym_index->kind == CONSTANT_INT)
         // put into dest the addr of array[index] element
-        fprintf(fout,"%saddi %s, $t%d, %ld\n",tabulation,dest,tmp_used2,(sym_index->u.value_int)*4);
+        fprintf(fout,"%saddi %s, %s, %ld\n",tabulation,dest,tmp_used2,(sym_index->u.value_int)*4);
     // in other cases we need to load the value from the label of the corresponding symbol
     else if( sym_index->kind == NAME || sym_index->kind == NAME_LOC || sym_index->kind == ARRAY) {
-        fprintf(fout,"%slw $t%d, _%s\n",tabulation,tmp_used1,(sym_index->u.name));
+        fprintf(fout,"%slw %s, %s\n",tabulation,tmp_used1,(sym_index->u.name));
     } else {
-        fprintf(fout,"%slw $t%d, temp%d\n",tabulation,tmp_used1,indice_temp(t,sym_index));
+        fprintf(fout,"%slw %s, temp%d\n",tabulation,tmp_used1,indice_temp(t,sym_index));
     }
     if (sym_index->kind != CONSTANT_INT){
         // if not CONSTANT_INT wasn't yet multiplied by 4
-        fprintf(fout,"%ssll $t%d, $t%d, 2\n",tabulation,tmp_used1,tmp_used1);
-        fprintf(fout,"%sadd %s, $t%d, $t%d\n",tabulation,dest,tmp_used2,tmp_used1);
+        fprintf(fout,"%ssll %s, %s, 2\n",tabulation, tmp_used1, tmp_used1);
+        fprintf(fout,"%sadd %s, %s, %s\n",tabulation, dest, tmp_used2, tmp_used1);
     }
 }
 
 void load_addr_macro(char * dest, struct symbol * sym, struct symtable * t, FILE* fout)
 {
-    if( sym->kind == NAME || sym->kind == NAME_LOC || sym->kind == ARRAY){
-        fprintf(fout,"%sla %s, _%s\n",tabulation,dest,sym->u.name);
+    if( sym->kind == NAME || sym->kind == NAME_FLOAT || sym->kind == NAME_LOC || sym->kind == ARRAY){
+        fprintf(fout,"%sla %s, %s\n",tabulation,dest,sym->u.name);
     } else 
         fprintf(fout,"%sla %s, temp%d\n",tabulation,dest,indice_temp(t,sym));
 
 }
 
+void convert_int_to_float(char * dest,char * tmp, struct symbol * sym, struct symtable * t, FILE* fout)
+{
+    load_addr_macro(tmp,sym,t,fout);
+    fprintf(fout,"%slw %s, 0(%s)\n",tabulation,tmp,tmp);
+    fprintf(fout,"%smtc1 %s, %s\n",tabulation,tmp,dest);
+    // we convert the integer to a float
+    fprintf(fout,"%scvt.s.w %s, %s\n",tabulation,dest,dest); // the value in dest now is a float
+}
+
+
+
+void load_float_bop_macro(char * dest1, char* dest2, char * tmp, struct symbol * sym1, struct symbol * sym2, struct symtable * t, FILE* fout){
+    if(!ISFLOAT(sym1))
+    { // if sym2 is an integer convert it to a float and store it in $f0
+            convert_int_to_float(dest1,tmp,sym1,t,fout);
+    } else { // store it in $f0
+            load_symbol_macro(dest1,tmp,sym1,t,fout);
+    }
+    if(!ISFLOAT(sym2))
+    { // if sym2 is an integer convert it to a float and store it in $f1
+            convert_int_to_float(dest2,tmp,sym2,t,fout);
+    } else { // store it in $f1
+            load_symbol_macro(dest2,tmp,sym2,t,fout);
+    }
+}
 
 void print_macros(FILE* fout){
     fprintf(fout,"\n# MACROS definition\n\n");
@@ -863,6 +1016,8 @@ void print_SPACE_macro(FILE* fout){
     fprintf(fout,"\tsyscall\n");
     fprintf(fout,".end_macro\n");
 }
+
+
 // ETC FEEL FREE TO ADD MORE SECTIONS
 
 // -------- DEBUG RELATED --------
diff --git a/lib.h b/lib.h
index a9426d9..e4930c1 100644
--- a/lib.h
+++ b/lib.h
@@ -9,6 +9,7 @@ extern struct symbol* symb_scope_function;
 #define INDENT_BUF 1024
 // make each section of MIPS code more clear comment to disable
 #define LIBDEBUG
+#define ISFLOAT(X) ( X->kind == CONSTANT_FLOAT || X->kind == ARRAY || X->kind == NAME_FLOAT )
 
 /* TABLE DES SYMBOLES */
 
@@ -22,8 +23,14 @@ struct array {
     struct symbol* dim1size;
 };
 
+enum var_type{
+    INTEGER,        // -> the var is an INTEGER
+    FLOAT           // -> the var is a FLOAT
+};
+
 enum kind{ 
     NAME,             // -> use the name attribut in the union u
+    NAME_FLOAT,       // -> use the name attribut in the union u
     CONSTANT_INT,     // -> use the value_int attribut in the union u
     CONSTANT_FLOAT,   // -> use the value_float attribut in the union u
     CHAIN,            // -> use the chaine attribut in the union u
@@ -41,8 +48,9 @@ struct symbol {
         float value_float;
         struct array arr;
     } u;
-    // * (! only sets with variable kind : NAME_LOC, ARRAY)
-    name_t scope_function; // -> Name of the function where locals variables (NAME_LOC, ARRAY) are defined. 
+    // * (! only sets with variable kind : NAME_LOC_INT, NAME_LOC_FLOAT, ARRAY)
+    name_t scope_function; // -> Name of the function where locals variables (NAME_LOC, NAME_LOC_FLOAT, ARRAY) are defined. 
+
 };
 
 // Store the symbol table
@@ -61,13 +69,17 @@ struct symbol* symtable_const_int(struct symtable * t, long int v);
 // Add a symbol in the table of a float (CONSTANT_FLOAT)
 struct symbol* symtable_const_double(struct symtable * t, float v);
 // Add a symbol in the table of a function (NAME)
-struct symbol* symtable_put_name(struct symtable * t, const char * s);
+struct symbol* symtable_put_name(struct symtable * t, const char * id);
+// Add a symbol in the table of a function (NAME_FLOAT)
+struct symbol* symtable_put_name_float(struct symtable * t, const char * id);
 // Add a symbol in the table of a chaine of caracters (CHAIN)
 struct symbol* symtable_put_chaine(struct symtable * t, const char * chaine);
-// Add a symbol in the table of a local variable (defined but isn't initialized) (NAME_LOC)
+// Add a symbol in the table of a local variable (defined but isn't initialized) (NAME_LOC_INT and NAME_LOC_FLOAT)
 struct symbol* symtable_put_loc(struct symtable * t, const char * var_name, struct symbol* func_id);
 // Add a symbol in the table of a local array (defined but isn't initialized) (ARRAY)
 struct symbol* symtable_put_array(struct symtable * t, const char* var_name, unsigned int dim, struct symbol** arrayDim, struct symbol* dim1size, struct symbol* func_id);
+// Add to the symtable a temporary function which is used to transform multiples addresses instruction to a group of 3 addresses instructions (uses NAME kind)
+struct symbol* newtemp(struct symtable * t,enum var_type ty);
 
 // Get a pointer of a symbol with attribut name in the symtable (if 's' isn't in the table, return NULL)
 // (func_id is used for the scope of function on the local variable)
@@ -91,7 +103,7 @@ void symtable_free(struct symtable * t);
 * COPY_ARRAY -> tmp=sym1 array=sym2 element=sym3  -> tmp= array[element]
 */
 struct quad {
-    enum quad_kind { BOP_PLUS, BOP_MINUS, BOP_MULT, BOP_DIV, BOP_MOD, UOP_MINUS, COPY, COPY_ARRAY, ALLOCATE_ARRAY, AFF_ARRAY, DEF_MAIN, DEF_FUNCTION, CALL_PRINT, CALL_PRINTSTR} kind;
+    enum quad_kind { BOP_PLUS, BOP_MINUS, BOP_MULT, BOP_DIV, BOP_MOD, UOP_MINUS, COPY, COPY_ARRAY, ALLOCATE_ARRAY, AFF_ARRAY, DEF_MAIN, DEF_FUNCTION, CALL_PRINT, CALL_PRINTSTR, CONDITION, OPREL_LT, OPREL_GT, OPREL_LE, OPREL_GE, OPREL_EQ} kind;
     struct symbol* sym1;
     struct symbol* sym2;
     struct symbol* sym3;
@@ -114,9 +126,6 @@ void gencode(struct code * c,
               struct symbol* s2,
               struct symbol* s3);
 
-// Add to the symtable a temporary function which is used to transform multiples addresses instruction to a group of 3 addresses instructions (uses NAME kind)
-struct symbol *newtemp(struct symtable * t);
-
 // Display in the 'fout' output file the intermediate code (in commentary)
 void code_dump(struct code * c, FILE* fout);
 // Display in the 'fout' output file the mips code
@@ -138,22 +147,22 @@ void print_main_def(FILE* fout);
 // -------- ARITHMETIC RELATED --------
 
 // add the BOP plus arithmetic operation TODO explain in more details
-void print_bop_plus(struct code * c, FILE* fout,int i);
+void print_bop_plus(struct code * c, struct symtable* t, FILE* fout,int i);
 
 // add the BOP minus arithmetic operation TODO explain in more details
-void print_bop_minus(struct code * c, FILE* fout,int i);
+void print_bop_minus(struct code * c, struct symtable* t, FILE* fout,int i);
 
 // add the BOP mult arithmetic operation TODO explain in more details
-void print_bop_mult(struct code * c, FILE* fout,int i);
+void print_bop_mult(struct code * c, struct symtable* t, FILE* fout,int i);
 
 // add the BOP div arithmetic operation TODO explain in more details
-void print_bop_div(struct code * c, FILE* fout,int i);
+void print_bop_div(struct code * c, struct symtable* t, FILE* fout,int i);
 
 // add the BOP modulo arithmetic operation TODO explain in more details
-void print_bop_mod(struct code * c, FILE* fout,int i);
+void print_bop_mod(struct code * c, struct symtable* t, FILE* fout,int i);
 
 // add the UOP minus arithmetic operation TODO explain in more details
-void print_uop_minus(struct code * c, FILE* fout,int i);
+void print_uop_minus(struct code * c, struct symtable* t, FILE* fout,int i);
 
 // -------- PRINT RELATED --------
 
@@ -164,10 +173,10 @@ void print_print(struct symtable * t, struct code * c, FILE* fout,int i);
 void print_printstr(struct symtable * t, struct code * c, FILE* fout,int i);
 
 /** @brief print_reg make MIPS code to print the register's value, no LF and no SPACE
- *  only the register's value type = 0 => int | type = 1 => float everything else is considered as an int TODO update this
+ *  var_type is the type we wanna print, either FLOAT or INTEGER
  *  TODO think about deleting type and just checking if the first reg character is an f if no other cases than int and floats
  */ 
-void print_reg(char * reg,FILE * fout, int type);
+void print_reg(char * reg,FILE * fout, enum var_type ty);
 
 // -------- FUNCTIONS RELATED --------
 
@@ -198,21 +207,34 @@ void print_nameOrInteger(struct code * c, FILE* fout,int i,int sym);
 
 /** @brief load_symbol_alloc_macro load a symbol used for an sbrk allocation ( multiply it's value by 4)
  */
-void load_symbol_alloc_macro(char * dest, int tmp_used, struct symbol * sym, struct symtable * t, FILE* fout);
+void load_symbol_alloc_macro(char * dest, char * tmp_used, struct symbol * sym, struct symtable * t, FILE* fout);
 
 /** @brief load_symbol_macro load a symbol value into the dest register
+ * tmp_used register is only used if the sym is a float the register won't be changed unless you load a float
+ * since floats should be loaded in $f register if you should always know the type when calling this function
+ * thus if the type is anything else than a FLOAT (CONSTANT_FLOAT / NAME_FLOAT) you can put a dummy value in tmp_used,
+ * Convention : use NULL so if you have an error it will be clearly visible in the MIPS code (won't assemble)
  */
-void load_symbol_macro(char * dest, struct symbol * sym, struct symtable * t, FILE* fout);
+void load_symbol_macro(char * dest, char * tmp_used, struct symbol * sym, struct symtable * t, FILE* fout);
 
 /** @brief load_tab_addr_macro given a symbol adress and a symbol index put the addr of array[n] element in dest
  *  tmp_used1 and tmp_used2 won't be saved so ensure nothing that should be saved is in
  */
-void load_tab_addr_macro(char * dest, int tmp_used1, int tmp_used2, struct symbol * sym_addr, struct symbol * sym_index, struct symtable * t, FILE* fout);
+void load_tab_addr_macro(char * dest, char * tmp_used1, char * tmp_used2, struct symbol * sym_addr, struct symbol * sym_index, struct symtable * t, FILE* fout);
 
 /** @brief load_addr_macro put the memory adress of sym into the dest register
  */
 void load_addr_macro(char * dest, struct symbol * sym, struct symtable * t, FILE* fout);
 
+/** @brief convert an int to a float, the dest register must be a $f[0-31] register
+ */
+void convert_int_to_float(char * dest,char * tmp, struct symbol * sym, struct symtable * t, FILE* fout);
+
+/** @brief load the two operand required for a binary operation into dest1 and dest2
+ * convert them if needed
+ */
+void load_float_bop_macro(char * dest1, char* dest2, char * tmp, struct symbol * sym1, struct symbol * sym2, struct symtable * t, FILE* fout);
+
 /** @brief Macro printer only print the LF and SPACE macros for the moment
  * should be called between .data and .text segments
  */
-- 
GitLab