diff --git a/eval-final-projet/compare_arbres_xml b/eval-final-projet/compare_arbres_xml
new file mode 100755
index 0000000..89f8836
Binary files /dev/null and b/eval-final-projet/compare_arbres_xml differ
diff --git a/eval-final-projet/input/eval20.l b/eval-final-projet/input/eval20.l.d
similarity index 100%
rename from eval-final-projet/input/eval20.l
rename to eval-final-projet/input/eval20.l.d
diff --git a/eval-final-projet/output/eval1-err.synt.xml b/eval-final-projet/output/eval1-err.synt.xml
new file mode 100644
index 0000000..e69de29
diff --git a/eval-final-projet/output/eval1.asynt b/eval-final-projet/output/eval1.asynt
new file mode 100644
index 0000000..f92de39
--- /dev/null
+++ b/eval-final-projet/output/eval1.asynt
@@ -0,0 +1,23 @@
+
+
+ $a
+
+
+
+ main
+
+
+ $a
+ 1
+
+
+
+
+ $a
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval1.lex b/eval-final-projet/output/eval1.lex
new file mode 100644
index 0000000..fb828db
--- /dev/null
+++ b/eval-final-projet/output/eval1.lex
@@ -0,0 +1,18 @@
+entier mot_clef entier
+$a id_variable $a
+; symbole POINT_VIRGULE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+$a id_variable $a
+= symbole EGAL
+1 nombre 1
+; symbole POINT_VIRGULE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+$a id_variable $a
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval1.mips b/eval-final-projet/output/eval1.mips
new file mode 100644
index 0000000..5f5f8c0
--- /dev/null
+++ b/eval-final-projet/output/eval1.mips
@@ -0,0 +1,37 @@
+.data
+$$a: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$a
+lw $t0, $$a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval1.synt b/eval-final-projet/output/eval1.synt
new file mode 100644
index 0000000..038df30
--- /dev/null
+++ b/eval-final-projet/output/eval1.synt
@@ -0,0 +1,113 @@
+
+
+
+
+ entier
+ $a
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $a
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval1.tab b/eval-final-projet/output/eval1.tab
new file mode 100644
index 0000000..91bc69d
--- /dev/null
+++ b/eval-final-projet/output/eval1.tab
@@ -0,0 +1,6 @@
+------------------------------------------
+base = 2
+sommet = 2
+0 $a GLOBALE ENTIER 0 -1
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval10-err.synt.xml b/eval-final-projet/output/eval10-err.synt.xml
new file mode 100644
index 0000000..e69de29
diff --git a/eval-final-projet/output/eval10.asynt b/eval-final-projet/output/eval10.asynt
new file mode 100644
index 0000000..4ff357e
--- /dev/null
+++ b/eval-final-projet/output/eval10.asynt
@@ -0,0 +1,28 @@
+
+
+
+ procedure
+
+
+ 1
+
+
+
+
+
+ main
+
+
+
+
+ procedure
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval10.lex b/eval-final-projet/output/eval10.lex
new file mode 100644
index 0000000..5577cab
--- /dev/null
+++ b/eval-final-projet/output/eval10.lex
@@ -0,0 +1,21 @@
+procedure id_fonction procedure
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+retour mot_clef retour
+1 nombre 1
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+procedure id_fonction procedure
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval10.mips b/eval-final-projet/output/eval10.mips
new file mode 100644
index 0000000..870d3f4
--- /dev/null
+++ b/eval-final-projet/output/eval10.mips
@@ -0,0 +1,54 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+procedure :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0 4($fp) #Adresse de retour
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+jr $ra
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4 #Val Retour
+jal procedure
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval10.synt b/eval-final-projet/output/eval10.synt
new file mode 100644
index 0000000..5a20a3e
--- /dev/null
+++ b/eval-final-projet/output/eval10.synt
@@ -0,0 +1,118 @@
+
+
+
+
+
+ procedure
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ retour
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ procedure
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval10.tab b/eval-final-projet/output/eval10.tab
new file mode 100644
index 0000000..a780954
--- /dev/null
+++ b/eval-final-projet/output/eval10.tab
@@ -0,0 +1,11 @@
+------------------------------------------
+base = 1
+sommet = 1
+0 procedure GLOBALE FONCTION 0 0
+------------------------------------------
+------------------------------------------
+base = 2
+sommet = 2
+0 procedure GLOBALE FONCTION 0 0
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval11-err.synt.xml b/eval-final-projet/output/eval11-err.synt.xml
new file mode 100644
index 0000000..a4dc1a4
--- /dev/null
+++ b/eval-final-projet/output/eval11-err.synt.xml
@@ -0,0 +1,34 @@
+.data
+$$a: .space 40
+$$b: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 10
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$a($t4)
+li $t0, 5
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$b
+Indice tableau $a est attendu
diff --git a/eval-final-projet/output/eval11.asynt b/eval-final-projet/output/eval11.asynt
new file mode 100644
index 0000000..cef5db4
--- /dev/null
+++ b/eval-final-projet/output/eval11.asynt
@@ -0,0 +1,37 @@
+
+
+
+ procedure
+
+ $a
+
+
+
+ $a
+ 1
+
+
+
+
+ $a
+
+
+
+
+
+
+
+ main
+
+
+
+ procedure
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval11.lex b/eval-final-projet/output/eval11.lex
new file mode 100644
index 0000000..d2991f9
--- /dev/null
+++ b/eval-final-projet/output/eval11.lex
@@ -0,0 +1,27 @@
+procedure id_fonction procedure
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+entier mot_clef entier
+$a id_variable $a
+; symbole POINT_VIRGULE
+{ symbole ACCOLADE_OUVRANTE
+$a id_variable $a
+= symbole EGAL
+1 nombre 1
+; symbole POINT_VIRGULE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+$a id_variable $a
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+procedure id_fonction procedure
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval11.mips b/eval-final-projet/output/eval11.mips
new file mode 100644
index 0000000..649b873
--- /dev/null
+++ b/eval-final-projet/output/eval11.mips
@@ -0,0 +1,52 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+procedure :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 4 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4 #Val Retour
+jal procedure
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval11.synt b/eval-final-projet/output/eval11.synt
new file mode 100644
index 0000000..9147791
--- /dev/null
+++ b/eval-final-projet/output/eval11.synt
@@ -0,0 +1,146 @@
+
+
+
+
+
+ procedure
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ entier
+ $a
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $a
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ procedure
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval11.tab b/eval-final-projet/output/eval11.tab
new file mode 100644
index 0000000..75b866f
--- /dev/null
+++ b/eval-final-projet/output/eval11.tab
@@ -0,0 +1,12 @@
+------------------------------------------
+base = 1
+sommet = 2
+0 procedure GLOBALE FONCTION 0 0
+1 $a LOCALE ENTIER 0 -1
+------------------------------------------
+------------------------------------------
+base = 2
+sommet = 2
+0 procedure GLOBALE FONCTION 0 0
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval12-err.synt.xml b/eval-final-projet/output/eval12-err.synt.xml
new file mode 100644
index 0000000..4868e4e
--- /dev/null
+++ b/eval-final-projet/output/eval12-err.synt.xml
@@ -0,0 +1,7 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+Fonction main non trouvé
diff --git a/eval-final-projet/output/eval12.asynt b/eval-final-projet/output/eval12.asynt
new file mode 100644
index 0000000..f4b25e7
--- /dev/null
+++ b/eval-final-projet/output/eval12.asynt
@@ -0,0 +1,20 @@
+
+
+ $a
+
+
+
+ main
+
+
+ 1
+
+
+ 1
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval12.lex b/eval-final-projet/output/eval12.lex
new file mode 100644
index 0000000..a51d4f1
--- /dev/null
+++ b/eval-final-projet/output/eval12.lex
@@ -0,0 +1,19 @@
+entier mot_clef entier
+$a id_variable $a
+; symbole POINT_VIRGULE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+si mot_clef si
+1 nombre 1
+alors mot_clef alors
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+1 nombre 1
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval12.mips b/eval-final-projet/output/eval12.mips
new file mode 100644
index 0000000..19de312
--- /dev/null
+++ b/eval-final-projet/output/eval12.mips
@@ -0,0 +1,40 @@
+.data
+$$a: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $zero e0
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+j e1
+e0:
+e1:
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval12.synt b/eval-final-projet/output/eval12.synt
new file mode 100644
index 0000000..c855a07
--- /dev/null
+++ b/eval-final-projet/output/eval12.synt
@@ -0,0 +1,112 @@
+
+
+
+
+ entier
+ $a
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ si
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ alors
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval12.tab b/eval-final-projet/output/eval12.tab
new file mode 100644
index 0000000..91bc69d
--- /dev/null
+++ b/eval-final-projet/output/eval12.tab
@@ -0,0 +1,6 @@
+------------------------------------------
+base = 2
+sommet = 2
+0 $a GLOBALE ENTIER 0 -1
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval13.asynt b/eval-final-projet/output/eval13.asynt
new file mode 100644
index 0000000..68c8ccf
--- /dev/null
+++ b/eval-final-projet/output/eval13.asynt
@@ -0,0 +1,25 @@
+
+
+ $a
+
+
+
+ main
+
+
+ 0
+
+
+ 1
+
+
+
+
+ 0
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval13.lex b/eval-final-projet/output/eval13.lex
new file mode 100644
index 0000000..a40b0de
--- /dev/null
+++ b/eval-final-projet/output/eval13.lex
@@ -0,0 +1,27 @@
+entier mot_clef entier
+$a id_variable $a
+; symbole POINT_VIRGULE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+si mot_clef si
+0 nombre 0
+alors mot_clef alors
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+1 nombre 1
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+sinon mot_clef sinon
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+0 nombre 0
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval13.mips b/eval-final-projet/output/eval13.mips
new file mode 100644
index 0000000..4b91b0c
--- /dev/null
+++ b/eval-final-projet/output/eval13.mips
@@ -0,0 +1,51 @@
+.data
+$$a: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $zero e0
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+j e1
+e0:
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+e1:
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval13.synt b/eval-final-projet/output/eval13.synt
new file mode 100644
index 0000000..f049cf1
--- /dev/null
+++ b/eval-final-projet/output/eval13.synt
@@ -0,0 +1,154 @@
+
+
+
+
+ entier
+ $a
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ si
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ alors
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+ sinon
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval13.tab b/eval-final-projet/output/eval13.tab
new file mode 100644
index 0000000..91bc69d
--- /dev/null
+++ b/eval-final-projet/output/eval13.tab
@@ -0,0 +1,6 @@
+------------------------------------------
+base = 2
+sommet = 2
+0 $a GLOBALE ENTIER 0 -1
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval14.asynt b/eval-final-projet/output/eval14.asynt
new file mode 100644
index 0000000..96fad91
--- /dev/null
+++ b/eval-final-projet/output/eval14.asynt
@@ -0,0 +1,96 @@
+
+
+ $tab[10]
+
+
+
+ main
+
+ $a
+
+
+
+ $a
+ 0
+
+
+
+
+ inf
+
+ $a
+
+ 10
+
+
+
+
+ $tab
+
+ $a
+
+
+
+ $a
+
+
+
+
+ $a
+
+ plus
+
+ $a
+
+ 1
+
+
+
+
+
+
+
+ $a
+ 0
+
+
+
+
+ inf
+
+ $a
+
+ 10
+
+
+
+
+
+ $tab
+
+ $a
+
+
+
+
+
+
+ $a
+
+ plus
+
+ $a
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval14.lex b/eval-final-projet/output/eval14.lex
new file mode 100644
index 0000000..3c9e1b9
--- /dev/null
+++ b/eval-final-projet/output/eval14.lex
@@ -0,0 +1,64 @@
+entier mot_clef entier
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+10 nombre 10
+] symbole CROCHET_FERMANT
+; symbole POINT_VIRGULE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+entier mot_clef entier
+$a id_variable $a
+; symbole POINT_VIRGULE
+{ symbole ACCOLADE_OUVRANTE
+$a id_variable $a
+= symbole EGAL
+0 nombre 0
+; symbole POINT_VIRGULE
+tantque mot_clef tantque
+$a id_variable $a
+< symbole INFERIEUR
+10 nombre 10
+faire mot_clef faire
+{ symbole ACCOLADE_OUVRANTE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+$a id_variable $a
+] symbole CROCHET_FERMANT
+= symbole EGAL
+$a id_variable $a
+; symbole POINT_VIRGULE
+$a id_variable $a
+= symbole EGAL
+$a id_variable $a
++ symbole PLUS
+1 nombre 1
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+$a id_variable $a
+= symbole EGAL
+0 nombre 0
+; symbole POINT_VIRGULE
+tantque mot_clef tantque
+$a id_variable $a
+< symbole INFERIEUR
+10 nombre 10
+faire mot_clef faire
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+$a id_variable $a
+] symbole CROCHET_FERMANT
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+$a id_variable $a
+= symbole EGAL
+$a id_variable $a
++ symbole PLUS
+1 nombre 1
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval14.mips b/eval-final-projet/output/eval14.mips
new file mode 100644
index 0000000..04753b1
--- /dev/null
+++ b/eval-final-projet/output/eval14.mips
@@ -0,0 +1,140 @@
+.data
+$$tab: .space 40
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+e0:
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 10
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+blt $t1, $t2 e2
+li $t0, 0
+e2:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $0 e1
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+j e0
+e1:
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+e3:
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 10
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+blt $t1, $t2 e5
+li $t0, 0
+e5:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $0 e4
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, $$tab($t4)
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+j e3
+e4:
+addi $sp, $sp 4 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval14.synt b/eval-final-projet/output/eval14.synt
new file mode 100644
index 0000000..d0d0c20
--- /dev/null
+++ b/eval-final-projet/output/eval14.synt
@@ -0,0 +1,487 @@
+
+
+
+
+ entier
+ $tab
+
+ CROCHET_OUVRANT
+ 10
+ CROCHET_FERMANT
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ entier
+ $a
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $a
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ tantque
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+ INFERIEUR
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ faire
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $a
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+ PLUS
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+ $a
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ tantque
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+ INFERIEUR
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ faire
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+
+ $a
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+ PLUS
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval14.tab b/eval-final-projet/output/eval14.tab
new file mode 100644
index 0000000..6ef7c9a
--- /dev/null
+++ b/eval-final-projet/output/eval14.tab
@@ -0,0 +1,7 @@
+------------------------------------------
+base = 2
+sommet = 3
+0 $tab GLOBALE TABLEAU 0 10
+1 main GLOBALE FONCTION 0 0
+2 $a LOCALE ENTIER 0 -1
+------------------------------------------
diff --git a/eval-final-projet/output/eval15.asynt b/eval-final-projet/output/eval15.asynt
new file mode 100644
index 0000000..80cfd53
--- /dev/null
+++ b/eval-final-projet/output/eval15.asynt
@@ -0,0 +1,29 @@
+
+
+ $tab[10]
+
+
+
+ main
+
+
+
+ $tab
+ 4
+
+ 4
+
+
+
+
+
+ $tab
+ 4
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval15.lex b/eval-final-projet/output/eval15.lex
new file mode 100644
index 0000000..d3d8f9d
--- /dev/null
+++ b/eval-final-projet/output/eval15.lex
@@ -0,0 +1,27 @@
+entier mot_clef entier
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+10 nombre 10
+] symbole CROCHET_FERMANT
+; symbole POINT_VIRGULE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+4 nombre 4
+] symbole CROCHET_FERMANT
+= symbole EGAL
+4 nombre 4
+; symbole POINT_VIRGULE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+4 nombre 4
+] symbole CROCHET_FERMANT
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval15.mips b/eval-final-projet/output/eval15.mips
new file mode 100644
index 0000000..39381b4
--- /dev/null
+++ b/eval-final-projet/output/eval15.mips
@@ -0,0 +1,51 @@
+.data
+$$tab: .space 40
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 4
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 4
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+li $t0, 4
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, $$tab($t4)
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval15.synt b/eval-final-projet/output/eval15.synt
new file mode 100644
index 0000000..f09da36
--- /dev/null
+++ b/eval-final-projet/output/eval15.synt
@@ -0,0 +1,170 @@
+
+
+
+
+ entier
+ $tab
+
+ CROCHET_OUVRANT
+ 10
+ CROCHET_FERMANT
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval15.tab b/eval-final-projet/output/eval15.tab
new file mode 100644
index 0000000..de4eeb4
--- /dev/null
+++ b/eval-final-projet/output/eval15.tab
@@ -0,0 +1,6 @@
+------------------------------------------
+base = 2
+sommet = 2
+0 $tab GLOBALE TABLEAU 0 10
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval16.asynt b/eval-final-projet/output/eval16.asynt
new file mode 100644
index 0000000..4b68dd0
--- /dev/null
+++ b/eval-final-projet/output/eval16.asynt
@@ -0,0 +1,20 @@
+
+
+ $a
+
+
+
+ main
+
+
+ 0
+
+
+ 1
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval16.lex b/eval-final-projet/output/eval16.lex
new file mode 100644
index 0000000..911ee5b
--- /dev/null
+++ b/eval-final-projet/output/eval16.lex
@@ -0,0 +1,19 @@
+entier mot_clef entier
+$a id_variable $a
+; symbole POINT_VIRGULE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+tantque mot_clef tantque
+0 nombre 0
+faire mot_clef faire
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+1 nombre 1
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval16.mips b/eval-final-projet/output/eval16.mips
new file mode 100644
index 0000000..28928f9
--- /dev/null
+++ b/eval-final-projet/output/eval16.mips
@@ -0,0 +1,40 @@
+.data
+$$a: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+e0:
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $0 e1
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+j e0
+e1:
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval16.synt b/eval-final-projet/output/eval16.synt
new file mode 100644
index 0000000..7dcd9b3
--- /dev/null
+++ b/eval-final-projet/output/eval16.synt
@@ -0,0 +1,110 @@
+
+
+
+
+ entier
+ $a
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ tantque
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ faire
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval16.tab b/eval-final-projet/output/eval16.tab
new file mode 100644
index 0000000..91bc69d
--- /dev/null
+++ b/eval-final-projet/output/eval16.tab
@@ -0,0 +1,6 @@
+------------------------------------------
+base = 2
+sommet = 2
+0 $a GLOBALE ENTIER 0 -1
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval17.asynt b/eval-final-projet/output/eval17.asynt
new file mode 100644
index 0000000..370907a
--- /dev/null
+++ b/eval-final-projet/output/eval17.asynt
@@ -0,0 +1,46 @@
+
+
+ $a
+
+
+
+ main
+
+
+ $a
+ 0
+
+
+
+
+ inf
+
+ $a
+
+ 10
+
+
+
+
+ $a
+
+
+
+
+ $a
+
+ plus
+
+ $a
+
+ 1
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval17.lex b/eval-final-projet/output/eval17.lex
new file mode 100644
index 0000000..fb449a8
--- /dev/null
+++ b/eval-final-projet/output/eval17.lex
@@ -0,0 +1,31 @@
+entier mot_clef entier
+$a id_variable $a
+; symbole POINT_VIRGULE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+$a id_variable $a
+= symbole EGAL
+0 nombre 0
+; symbole POINT_VIRGULE
+tantque mot_clef tantque
+$a id_variable $a
+< symbole INFERIEUR
+10 nombre 10
+faire mot_clef faire
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+$a id_variable $a
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+$a id_variable $a
+= symbole EGAL
+$a id_variable $a
++ symbole PLUS
+1 nombre 1
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval17.mips b/eval-final-projet/output/eval17.mips
new file mode 100644
index 0000000..66b00b6
--- /dev/null
+++ b/eval-final-projet/output/eval17.mips
@@ -0,0 +1,75 @@
+.data
+$$a: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$a
+e0:
+lw $t0, $$a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 10
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+blt $t1, $t2 e2
+li $t0, 0
+e2:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $0 e1
+lw $t0, $$a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+lw $t0, $$a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$a
+j e0
+e1:
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval17.synt b/eval-final-projet/output/eval17.synt
new file mode 100644
index 0000000..812c711
--- /dev/null
+++ b/eval-final-projet/output/eval17.synt
@@ -0,0 +1,222 @@
+
+
+
+
+ entier
+ $a
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $a
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ tantque
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+ INFERIEUR
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ faire
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+
+ $a
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+ PLUS
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval17.tab b/eval-final-projet/output/eval17.tab
new file mode 100644
index 0000000..91bc69d
--- /dev/null
+++ b/eval-final-projet/output/eval17.tab
@@ -0,0 +1,6 @@
+------------------------------------------
+base = 2
+sommet = 2
+0 $a GLOBALE ENTIER 0 -1
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval18.asynt b/eval-final-projet/output/eval18.asynt
new file mode 100644
index 0000000..eae93f6
--- /dev/null
+++ b/eval-final-projet/output/eval18.asynt
@@ -0,0 +1,107 @@
+
+
+ $t0
+
+ $t1
+
+ $123
+
+ $
+
+ $$
+
+ $$$
+
+ $f
+
+ $_
+
+
+
+
+
+
+
+
+
+
+ f
+
+ $$
+
+
+ $$$
+
+ $f
+
+ $_
+
+
+
+
+
+ $
+
+ plus
+
+ plus
+
+ $123
+
+
+ $_
+
+
+
+ $$
+
+
+
+
+
+
+ $
+
+
+
+
+
+
+
+ main
+
+
+ $t0
+ 1
+
+
+
+ $123
+
+ plus
+
+ $t0
+
+ 0
+
+
+
+
+
+ f
+
+
+ $123
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval18.lex b/eval-final-projet/output/eval18.lex
new file mode 100644
index 0000000..628d3be
--- /dev/null
+++ b/eval-final-projet/output/eval18.lex
@@ -0,0 +1,74 @@
+entier mot_clef entier
+$t0 id_variable $t0
+, symbole VIRGULE
+entier mot_clef entier
+$t1 id_variable $t1
+, symbole VIRGULE
+entier mot_clef entier
+$123 id_variable $123
+, symbole VIRGULE
+entier mot_clef entier
+$ id_variable $
+, symbole VIRGULE
+entier mot_clef entier
+$$ id_variable $$
+, symbole VIRGULE
+entier mot_clef entier
+$$$ id_variable $$$
+, symbole VIRGULE
+entier mot_clef entier
+$f id_variable $f
+, symbole VIRGULE
+entier mot_clef entier
+$_ id_variable $_
+; symbole POINT_VIRGULE
+f id_fonction f
+( symbole PARENTHESE_OUVRANTE
+entier mot_clef entier
+$$ id_variable $$
+) symbole PARENTHESE_FERMANTE
+entier mot_clef entier
+$$$ id_variable $$$
+, symbole VIRGULE
+entier mot_clef entier
+$f id_variable $f
+, symbole VIRGULE
+entier mot_clef entier
+$_ id_variable $_
+; symbole POINT_VIRGULE
+{ symbole ACCOLADE_OUVRANTE
+$ id_variable $
+= symbole EGAL
+$123 id_variable $123
++ symbole PLUS
+$_ id_variable $_
++ symbole PLUS
+$$ id_variable $$
+; symbole POINT_VIRGULE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+$ id_variable $
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+$t0 id_variable $t0
+= symbole EGAL
+1 nombre 1
+; symbole POINT_VIRGULE
+$123 id_variable $123
+= symbole EGAL
+$t0 id_variable $t0
++ symbole PLUS
+0 nombre 0
+; symbole POINT_VIRGULE
+f id_fonction f
+( symbole PARENTHESE_OUVRANTE
+$123 id_variable $123
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval18.mips b/eval-final-projet/output/eval18.mips
new file mode 100644
index 0000000..aa464a5
--- /dev/null
+++ b/eval-final-projet/output/eval18.mips
@@ -0,0 +1,108 @@
+.data
+$$t0: .space 4
+$$t1: .space 4
+$$123: .space 4
+$$: .space 4
+$$$: .space 4
+$$$$: .space 4
+$$f: .space 4
+$$_: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+f :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4
+subi $sp, $sp, 4
+subi $sp, $sp, 4
+lw $t0, $$123
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, -16($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 4($fp) #variable argument $$
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$
+lw $t0, $$
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 12 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$t0
+lw $t0, $$t0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$123
+subi $sp, $sp, 4 #Val Retour
+lw $t0, $$123
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal f
+addi $sp, $sp, 4 #désalocation des arguments
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval18.synt b/eval-final-projet/output/eval18.synt
new file mode 100644
index 0000000..0adb6ca
--- /dev/null
+++ b/eval-final-projet/output/eval18.synt
@@ -0,0 +1,401 @@
+
+
+
+
+ entier
+ $t0
+
+
+
+
+ VIRGULE
+
+ entier
+ $t1
+
+
+
+
+ VIRGULE
+
+ entier
+ $123
+
+
+
+
+ VIRGULE
+
+ entier
+ $
+
+
+
+
+ VIRGULE
+
+ entier
+ $$
+
+
+
+
+ VIRGULE
+
+ entier
+ $$$
+
+
+
+
+ VIRGULE
+
+ entier
+ $f
+
+
+
+
+ VIRGULE
+
+ entier
+ $_
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ f
+
+ PARENTHESE_OUVRANTE
+
+
+
+ entier
+ $$
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ entier
+ $$$
+
+
+
+
+ VIRGULE
+
+ entier
+ $f
+
+
+
+
+ VIRGULE
+
+ entier
+ $_
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $123
+
+
+
+
+
+
+
+
+ PLUS
+
+
+
+ $_
+
+
+
+
+
+
+
+
+ PLUS
+
+
+
+ $$
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ $
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $t0
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $123
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $t0
+
+
+
+
+
+
+
+
+ PLUS
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ f
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+
+ $123
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+ POINT_VIRGULE
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval18.tab b/eval-final-projet/output/eval18.tab
new file mode 100644
index 0000000..028ddd4
--- /dev/null
+++ b/eval-final-projet/output/eval18.tab
@@ -0,0 +1,31 @@
+------------------------------------------
+base = 9
+sommet = 13
+0 $t0 GLOBALE ENTIER 0 -1
+1 $t1 GLOBALE ENTIER 4 -1
+2 $123 GLOBALE ENTIER 8 -1
+3 $ GLOBALE ENTIER 12 -1
+4 $$ GLOBALE ENTIER 16 -1
+5 $$$ GLOBALE ENTIER 20 -1
+6 $f GLOBALE ENTIER 24 -1
+7 $_ GLOBALE ENTIER 28 -1
+8 f GLOBALE FONCTION 0 1
+9 $$ ARGUMENT ENTIER 0 -1
+10 $$$ LOCALE ENTIER 0 -1
+11 $f LOCALE ENTIER 4 -1
+12 $_ LOCALE ENTIER 8 -1
+------------------------------------------
+------------------------------------------
+base = 10
+sommet = 10
+0 $t0 GLOBALE ENTIER 0 -1
+1 $t1 GLOBALE ENTIER 4 -1
+2 $123 GLOBALE ENTIER 8 -1
+3 $ GLOBALE ENTIER 12 -1
+4 $$ GLOBALE ENTIER 16 -1
+5 $$$ GLOBALE ENTIER 20 -1
+6 $f GLOBALE ENTIER 24 -1
+7 $_ GLOBALE ENTIER 28 -1
+8 f GLOBALE FONCTION 0 1
+9 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval19.asynt b/eval-final-projet/output/eval19.asynt
new file mode 100644
index 0000000..edf971b
--- /dev/null
+++ b/eval-final-projet/output/eval19.asynt
@@ -0,0 +1,16 @@
+
+
+
+ main
+
+
+
+ et
+ 1
+ 2
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval19.lex b/eval-final-projet/output/eval19.lex
new file mode 100644
index 0000000..b89d57d
--- /dev/null
+++ b/eval-final-projet/output/eval19.lex
@@ -0,0 +1,13 @@
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+1 nombre 1
+& symbole ET
+2 nombre 2
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval19.mips b/eval-final-projet/output/eval19.mips
new file mode 100644
index 0000000..4c3f4c9
--- /dev/null
+++ b/eval-final-projet/output/eval19.mips
@@ -0,0 +1,46 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t1, e1
+li $t0, 2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t2, e1
+and $t0, $t1, $t2
+j e0
+ e1 :
+li $t0 0
+ e0 :
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval19.synt b/eval-final-projet/output/eval19.synt
new file mode 100644
index 0000000..3f15bda
--- /dev/null
+++ b/eval-final-projet/output/eval19.synt
@@ -0,0 +1,80 @@
+
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ ET
+
+
+
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval19.tab b/eval-final-projet/output/eval19.tab
new file mode 100644
index 0000000..2a3c2e8
--- /dev/null
+++ b/eval-final-projet/output/eval19.tab
@@ -0,0 +1,5 @@
+------------------------------------------
+base = 1
+sommet = 1
+0 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval2-err.synt.xml b/eval-final-projet/output/eval2-err.synt.xml
new file mode 100644
index 0000000..9280285
--- /dev/null
+++ b/eval-final-projet/output/eval2-err.synt.xml
@@ -0,0 +1,79 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+add :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+lw $t0, 8($fp) #variable argument $a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 4($fp) #variable argument $b
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0 12($fp) #Adresse de retour
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+jr $ra
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4
+subi $sp, $sp, 4
+subi $sp, $sp, 4
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+li $t0, 2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -12($fp) #variable locale
+li $t0, 3
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -16($fp) #variable locale
+subi $sp, $sp, 4 #Val Retour
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, -12($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, -16($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+Nombre Argument différent pour l'appel à add
diff --git a/eval-final-projet/output/eval2.asynt b/eval-final-projet/output/eval2.asynt
new file mode 100644
index 0000000..3f2aace
--- /dev/null
+++ b/eval-final-projet/output/eval2.asynt
@@ -0,0 +1,63 @@
+
+
+ $i
+
+ $carre
+
+
+
+
+ main
+
+
+ $i
+ 0
+
+
+
+
+ inf
+
+ $i
+
+ 10
+
+
+
+ $carre
+
+ fois
+
+ $i
+
+
+ $i
+
+
+
+
+
+
+ $carre
+
+
+
+
+ $i
+
+ plus
+
+ $i
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval2.lex b/eval-final-projet/output/eval2.lex
new file mode 100644
index 0000000..cbdea9f
--- /dev/null
+++ b/eval-final-projet/output/eval2.lex
@@ -0,0 +1,40 @@
+entier mot_clef entier
+$i id_variable $i
+, symbole VIRGULE
+entier mot_clef entier
+$carre id_variable $carre
+; symbole POINT_VIRGULE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+$i id_variable $i
+= symbole EGAL
+0 nombre 0
+; symbole POINT_VIRGULE
+tantque mot_clef tantque
+$i id_variable $i
+< symbole INFERIEUR
+10 nombre 10
+faire mot_clef faire
+{ symbole ACCOLADE_OUVRANTE
+$carre id_variable $carre
+= symbole EGAL
+$i id_variable $i
+* symbole FOIS
+$i id_variable $i
+; symbole POINT_VIRGULE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+$carre id_variable $carre
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+$i id_variable $i
+= symbole EGAL
+$i id_variable $i
++ symbole PLUS
+1 nombre 1
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval2.mips b/eval-final-projet/output/eval2.mips
new file mode 100644
index 0000000..56e0446
--- /dev/null
+++ b/eval-final-projet/output/eval2.mips
@@ -0,0 +1,93 @@
+.data
+$$i: .space 4
+$$carre: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$i
+e0:
+lw $t0, $$i
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 10
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+blt $t1, $t2 e2
+li $t0, 0
+e2:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $0 e1
+lw $t0, $$i
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, $$i
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+mult $t1, $t2
+mflo $t0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$carre
+lw $t0, $$carre
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+lw $t0, $$i
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$i
+j e0
+e1:
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval2.synt b/eval-final-projet/output/eval2.synt
new file mode 100644
index 0000000..c3cf0f2
--- /dev/null
+++ b/eval-final-projet/output/eval2.synt
@@ -0,0 +1,283 @@
+
+
+
+
+ entier
+ $i
+
+
+
+
+ VIRGULE
+
+ entier
+ $carre
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $i
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ tantque
+
+
+
+
+
+
+
+
+ $i
+
+
+
+
+
+
+
+
+
+
+
+ INFERIEUR
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ faire
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $carre
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $i
+
+
+
+
+
+ FOIS
+
+
+ $i
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ $carre
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+
+ $i
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $i
+
+
+
+
+
+
+
+
+ PLUS
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval2.tab b/eval-final-projet/output/eval2.tab
new file mode 100644
index 0000000..f37700e
--- /dev/null
+++ b/eval-final-projet/output/eval2.tab
@@ -0,0 +1,7 @@
+------------------------------------------
+base = 3
+sommet = 3
+0 $i GLOBALE ENTIER 0 -1
+1 $carre GLOBALE ENTIER 4 -1
+2 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval20.asynt b/eval-final-projet/output/eval20.asynt
new file mode 100644
index 0000000..de7c576
--- /dev/null
+++ b/eval-final-projet/output/eval20.asynt
@@ -0,0 +1,93 @@
+
+
+
+ fact
+
+ $f
+
+
+
+
+ ou
+
+ egal
+
+ $f
+
+ 1
+
+
+ egal
+
+ $f
+
+ 0
+
+
+
+
+ 1
+
+
+
+
+
+ fois
+
+
+ fact
+
+
+ moins
+
+ $f
+
+ 1
+
+
+
+
+
+
+
+ $f
+
+
+
+
+
+
+
+
+
+ main
+
+ $a
+
+
+
+ $a
+
+
+
+
+
+
+
+ fact
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval20.lex b/eval-final-projet/output/eval20.lex
new file mode 100644
index 0000000..bd86f66
--- /dev/null
+++ b/eval-final-projet/output/eval20.lex
@@ -0,0 +1,57 @@
+fact id_fonction fact
+( symbole PARENTHESE_OUVRANTE
+entier mot_clef entier
+$f id_variable $f
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+si mot_clef si
+$f id_variable $f
+= symbole EGAL
+1 nombre 1
+| symbole OU
+$f id_variable $f
+= symbole EGAL
+0 nombre 0
+alors mot_clef alors
+{ symbole ACCOLADE_OUVRANTE
+retour mot_clef retour
+1 nombre 1
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+sinon mot_clef sinon
+{ symbole ACCOLADE_OUVRANTE
+retour mot_clef retour
+fact id_fonction fact
+( symbole PARENTHESE_OUVRANTE
+$f id_variable $f
+- symbole MOINS
+1 nombre 1
+) symbole PARENTHESE_FERMANTE
+* symbole FOIS
+$f id_variable $f
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+entier mot_clef entier
+$a id_variable $a
+; symbole POINT_VIRGULE
+{ symbole ACCOLADE_OUVRANTE
+$a id_variable $a
+= symbole EGAL
+lire mot_clef lire
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+fact id_fonction fact
+( symbole PARENTHESE_OUVRANTE
+$a id_variable $a
+) symbole PARENTHESE_FERMANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval20.mips b/eval-final-projet/output/eval20.mips
new file mode 100644
index 0000000..0cf87dd
--- /dev/null
+++ b/eval-final-projet/output/eval20.mips
@@ -0,0 +1,156 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+fact :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+lw $t0, 4($fp) #variable argument $f
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+beq $t1, $t2 e4
+li $t0, 0
+e4:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t1, e0
+j e2
+e0 :
+lw $t0, 4($fp) #variable argument $f
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+beq $t1, $t2 e5
+li $t0, 0
+e5:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+e2 :
+or $t0, $t1, $t2
+j e3
+e1 :
+or $t0, $t1, $t2
+e3 :
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $zero e6
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0 8($fp) #Adresse de retour
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+jr $ra
+j e7
+e6:
+subi $sp, $sp, 4 #Val Retour
+lw $t0, 4($fp) #variable argument $f
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+sub $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal fact
+addi $sp, $sp, 4 #désalocation des arguments
+lw $t0, 4($fp) #variable argument $f
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+mult $t1, $t2
+mflo $t0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0 8($fp) #Adresse de retour
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+jr $ra
+e7:
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4
+li $v0 5
+syscall
+move $t0, $v0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4 #Val Retour
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal fact
+addi $sp, $sp, 4 #désalocation des arguments
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 4 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval20.synt b/eval-final-projet/output/eval20.synt
new file mode 100644
index 0000000..8c37de9
--- /dev/null
+++ b/eval-final-projet/output/eval20.synt
@@ -0,0 +1,408 @@
+
+
+
+
+
+ fact
+
+ PARENTHESE_OUVRANTE
+
+
+
+ entier
+ $f
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ si
+
+
+
+
+
+
+
+
+ $f
+
+
+
+
+
+
+
+
+
+
+
+ EGAL
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OU
+
+
+
+
+
+
+
+ $f
+
+
+
+
+
+
+
+
+
+
+
+ EGAL
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ alors
+
+ ACCOLADE_OUVRANTE
+
+
+
+ retour
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+ sinon
+
+ ACCOLADE_OUVRANTE
+
+
+
+ retour
+
+
+
+
+
+
+
+
+ fact
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+
+ $f
+
+
+
+
+
+
+
+
+ MOINS
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+ FOIS
+
+
+ $f
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ entier
+ $a
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $a
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ lire
+ PARENTHESE_OUVRANTE
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ fact
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval20.tab b/eval-final-projet/output/eval20.tab
new file mode 100644
index 0000000..8d8ab1f
--- /dev/null
+++ b/eval-final-projet/output/eval20.tab
@@ -0,0 +1,13 @@
+------------------------------------------
+base = 1
+sommet = 2
+0 fact GLOBALE FONCTION 0 1
+1 $f ARGUMENT ENTIER 0 -1
+------------------------------------------
+------------------------------------------
+base = 2
+sommet = 3
+0 fact GLOBALE FONCTION 0 1
+1 main GLOBALE FONCTION 0 0
+2 $a LOCALE ENTIER 0 -1
+------------------------------------------
diff --git a/eval-final-projet/output/eval21.asynt b/eval-final-projet/output/eval21.asynt
new file mode 100644
index 0000000..292ebb7
--- /dev/null
+++ b/eval-final-projet/output/eval21.asynt
@@ -0,0 +1,85 @@
+
+
+
+ fibo
+
+ $n
+
+
+
+
+ inf
+
+ $n
+
+ 2
+
+
+
+ 1
+
+
+
+
+
+ plus
+
+
+ fibo
+
+
+ moins
+
+ $n
+
+ 1
+
+
+
+
+
+
+
+
+ fibo
+
+
+ moins
+
+ $n
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ main
+
+
+
+
+ fibo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval21.lex b/eval-final-projet/output/eval21.lex
new file mode 100644
index 0000000..40e933b
--- /dev/null
+++ b/eval-final-projet/output/eval21.lex
@@ -0,0 +1,51 @@
+fibo id_fonction fibo
+( symbole PARENTHESE_OUVRANTE
+entier mot_clef entier
+$n id_variable $n
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+si mot_clef si
+$n id_variable $n
+< symbole INFERIEUR
+2 nombre 2
+alors mot_clef alors
+{ symbole ACCOLADE_OUVRANTE
+retour mot_clef retour
+1 nombre 1
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+sinon mot_clef sinon
+{ symbole ACCOLADE_OUVRANTE
+retour mot_clef retour
+fibo id_fonction fibo
+( symbole PARENTHESE_OUVRANTE
+$n id_variable $n
+- symbole MOINS
+1 nombre 1
+) symbole PARENTHESE_FERMANTE
++ symbole PLUS
+fibo id_fonction fibo
+( symbole PARENTHESE_OUVRANTE
+$n id_variable $n
+- symbole MOINS
+2 nombre 2
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+fibo id_fonction fibo
+( symbole PARENTHESE_OUVRANTE
+lire mot_clef lire
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+) symbole PARENTHESE_FERMANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval21.mips b/eval-final-projet/output/eval21.mips
new file mode 100644
index 0000000..7d118aa
--- /dev/null
+++ b/eval-final-projet/output/eval21.mips
@@ -0,0 +1,130 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+fibo :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+lw $t0, 4($fp) #variable argument $n
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+blt $t1, $t2 e0
+li $t0, 0
+e0:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $zero e1
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0 8($fp) #Adresse de retour
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+jr $ra
+j e2
+e1:
+subi $sp, $sp, 4 #Val Retour
+lw $t0, 4($fp) #variable argument $n
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+sub $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal fibo
+addi $sp, $sp, 4 #désalocation des arguments
+subi $sp, $sp, 4 #Val Retour
+lw $t0, 4($fp) #variable argument $n
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+sub $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal fibo
+addi $sp, $sp, 4 #désalocation des arguments
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0 8($fp) #Adresse de retour
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+jr $ra
+e2:
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4 #Val Retour
+li $v0 5
+syscall
+move $t0, $v0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal fibo
+addi $sp, $sp, 4 #désalocation des arguments
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval21.synt b/eval-final-projet/output/eval21.synt
new file mode 100644
index 0000000..1ca6407
--- /dev/null
+++ b/eval-final-projet/output/eval21.synt
@@ -0,0 +1,360 @@
+
+
+
+
+
+ fibo
+
+ PARENTHESE_OUVRANTE
+
+
+
+ entier
+ $n
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ si
+
+
+
+
+
+
+
+
+ $n
+
+
+
+
+
+
+
+
+
+
+
+ INFERIEUR
+
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ alors
+
+ ACCOLADE_OUVRANTE
+
+
+
+ retour
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+ sinon
+
+ ACCOLADE_OUVRANTE
+
+
+
+ retour
+
+
+
+
+
+
+
+
+ fibo
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+
+ $n
+
+
+
+
+
+
+
+
+ MOINS
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+ PLUS
+
+
+
+ fibo
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+
+ $n
+
+
+
+
+
+
+
+
+ MOINS
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ fibo
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ lire
+ PARENTHESE_OUVRANTE
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval21.tab b/eval-final-projet/output/eval21.tab
new file mode 100644
index 0000000..9245325
--- /dev/null
+++ b/eval-final-projet/output/eval21.tab
@@ -0,0 +1,12 @@
+------------------------------------------
+base = 1
+sommet = 2
+0 fibo GLOBALE FONCTION 0 1
+1 $n ARGUMENT ENTIER 0 -1
+------------------------------------------
+------------------------------------------
+base = 2
+sommet = 2
+0 fibo GLOBALE FONCTION 0 1
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval22.asynt b/eval-final-projet/output/eval22.asynt
new file mode 100644
index 0000000..efeef4e
--- /dev/null
+++ b/eval-final-projet/output/eval22.asynt
@@ -0,0 +1,161 @@
+
+
+ $a
+
+ $b
+
+
+
+
+ pgcd
+
+ $a
+
+ $b
+
+
+
+ $c
+
+
+
+ $c
+
+ moins
+
+ $a
+
+
+ fois
+
+ divise
+
+ $a
+
+
+ $b
+
+
+
+ $b
+
+
+
+
+
+
+
+ egal
+
+ $c
+
+ 0
+
+
+
+
+ $b
+
+
+
+
+
+
+
+ pgcd
+
+
+ $b
+
+
+
+ $c
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ main
+
+
+ $a
+
+
+
+
+
+ $b
+
+
+
+
+
+
+ inf
+
+ $b
+
+
+ $a
+
+
+
+
+
+
+ pgcd
+
+
+ $a
+
+
+
+ $b
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pgcd
+
+
+ $b
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval22.lex b/eval-final-projet/output/eval22.lex
new file mode 100644
index 0000000..d4220d6
--- /dev/null
+++ b/eval-final-projet/output/eval22.lex
@@ -0,0 +1,100 @@
+entier mot_clef entier
+$a id_variable $a
+, symbole VIRGULE
+entier mot_clef entier
+$b id_variable $b
+; symbole POINT_VIRGULE
+pgcd id_fonction pgcd
+( symbole PARENTHESE_OUVRANTE
+entier mot_clef entier
+$a id_variable $a
+, symbole VIRGULE
+entier mot_clef entier
+$b id_variable $b
+) symbole PARENTHESE_FERMANTE
+entier mot_clef entier
+$c id_variable $c
+; symbole POINT_VIRGULE
+{ symbole ACCOLADE_OUVRANTE
+$c id_variable $c
+= symbole EGAL
+$a id_variable $a
+- symbole MOINS
+( symbole PARENTHESE_OUVRANTE
+$a id_variable $a
+/ symbole DIVISE
+$b id_variable $b
+) symbole PARENTHESE_FERMANTE
+* symbole FOIS
+$b id_variable $b
+; symbole POINT_VIRGULE
+si mot_clef si
+$c id_variable $c
+= symbole EGAL
+0 nombre 0
+alors mot_clef alors
+{ symbole ACCOLADE_OUVRANTE
+retour mot_clef retour
+$b id_variable $b
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+sinon mot_clef sinon
+{ symbole ACCOLADE_OUVRANTE
+retour mot_clef retour
+pgcd id_fonction pgcd
+( symbole PARENTHESE_OUVRANTE
+$b id_variable $b
+, symbole VIRGULE
+$c id_variable $c
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+$a id_variable $a
+= symbole EGAL
+lire mot_clef lire
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+$b id_variable $b
+= symbole EGAL
+lire mot_clef lire
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+si mot_clef si
+$b id_variable $b
+< symbole INFERIEUR
+$a id_variable $a
+alors mot_clef alors
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+pgcd id_fonction pgcd
+( symbole PARENTHESE_OUVRANTE
+$a id_variable $a
+, symbole VIRGULE
+$b id_variable $b
+) symbole PARENTHESE_FERMANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+sinon mot_clef sinon
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+pgcd id_fonction pgcd
+( symbole PARENTHESE_OUVRANTE
+$b id_variable $b
+, symbole VIRGULE
+$a id_variable $a
+) symbole PARENTHESE_FERMANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval22.mips b/eval-final-projet/output/eval22.mips
new file mode 100644
index 0000000..89fd3f8
--- /dev/null
+++ b/eval-final-projet/output/eval22.mips
@@ -0,0 +1,197 @@
+.data
+$$a: .space 4
+$$b: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+pgcd :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4
+lw $t0, 8($fp) #variable argument $a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 8($fp) #variable argument $a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 4($fp) #variable argument $b
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+div $t1, $t2
+mflo $t0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 4($fp) #variable argument $b
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+mult $t1, $t2
+mflo $t0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+sub $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+beq $t1, $t2 e0
+li $t0, 0
+e0:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $zero e1
+lw $t0, 4($fp) #variable argument $b
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0 12($fp) #Adresse de retour
+addi $sp, $sp 4 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+jr $ra
+j e2
+e1:
+subi $sp, $sp, 4 #Val Retour
+lw $t0, 4($fp) #variable argument $b
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal pgcd
+addi $sp, $sp, 8 #désalocation des arguments
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0 12($fp) #Adresse de retour
+addi $sp, $sp 4 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+jr $ra
+e2:
+addi $sp, $sp 4 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $v0 5
+syscall
+move $t0, $v0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$a
+li $v0 5
+syscall
+move $t0, $v0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$b
+lw $t0, $$b
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, $$a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+blt $t1, $t2 e3
+li $t0, 0
+e3:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $zero e4
+subi $sp, $sp, 4 #Val Retour
+lw $t0, $$a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, $$b
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal pgcd
+addi $sp, $sp, 8 #désalocation des arguments
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+j e5
+e4:
+subi $sp, $sp, 4 #Val Retour
+lw $t0, $$b
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, $$a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal pgcd
+addi $sp, $sp, 8 #désalocation des arguments
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+e5:
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval22.synt b/eval-final-projet/output/eval22.synt
new file mode 100644
index 0000000..9f90605
--- /dev/null
+++ b/eval-final-projet/output/eval22.synt
@@ -0,0 +1,759 @@
+
+
+
+
+ entier
+ $a
+
+
+
+
+ VIRGULE
+
+ entier
+ $b
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ pgcd
+
+ PARENTHESE_OUVRANTE
+
+
+
+ entier
+ $a
+
+
+
+
+ VIRGULE
+
+ entier
+ $b
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ entier
+ $c
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $c
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+ MOINS
+
+
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+ DIVISE
+
+
+ $b
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+ FOIS
+
+
+ $b
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ si
+
+
+
+
+
+
+
+
+ $c
+
+
+
+
+
+
+
+
+
+
+
+ EGAL
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ alors
+
+ ACCOLADE_OUVRANTE
+
+
+
+ retour
+
+
+
+
+
+
+
+
+ $b
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+ sinon
+
+ ACCOLADE_OUVRANTE
+
+
+
+ retour
+
+
+
+
+
+
+
+
+ pgcd
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+
+ $b
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VIRGULE
+
+
+
+
+
+
+
+
+ $c
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $a
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ lire
+ PARENTHESE_OUVRANTE
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $b
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ lire
+ PARENTHESE_OUVRANTE
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ si
+
+
+
+
+
+
+
+
+ $b
+
+
+
+
+
+
+
+
+
+
+
+ INFERIEUR
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ alors
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ pgcd
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VIRGULE
+
+
+
+
+
+
+
+
+ $b
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+ sinon
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ pgcd
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+
+ $b
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VIRGULE
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval22.tab b/eval-final-projet/output/eval22.tab
new file mode 100644
index 0000000..a0255dd
--- /dev/null
+++ b/eval-final-projet/output/eval22.tab
@@ -0,0 +1,18 @@
+------------------------------------------
+base = 3
+sommet = 6
+0 $a GLOBALE ENTIER 0 -1
+1 $b GLOBALE ENTIER 4 -1
+2 pgcd GLOBALE FONCTION 0 2
+3 $a ARGUMENT ENTIER 0 -1
+4 $b ARGUMENT ENTIER 4 -1
+5 $c LOCALE ENTIER 0 -1
+------------------------------------------
+------------------------------------------
+base = 4
+sommet = 4
+0 $a GLOBALE ENTIER 0 -1
+1 $b GLOBALE ENTIER 4 -1
+2 pgcd GLOBALE FONCTION 0 2
+3 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval23.asynt b/eval-final-projet/output/eval23.asynt
new file mode 100644
index 0000000..c46432c
--- /dev/null
+++ b/eval-final-projet/output/eval23.asynt
@@ -0,0 +1,22 @@
+
+
+
+ main
+
+
+
+ ou
+ 1
+
+
+
+
+
+ 5
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval23.lex b/eval-final-projet/output/eval23.lex
new file mode 100644
index 0000000..d384bb1
--- /dev/null
+++ b/eval-final-projet/output/eval23.lex
@@ -0,0 +1,20 @@
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+si mot_clef si
+1 nombre 1
+| symbole OU
+lire mot_clef lire
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+alors mot_clef alors
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+5 nombre 5
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval23.mips b/eval-final-projet/output/eval23.mips
new file mode 100644
index 0000000..11fffbc
--- /dev/null
+++ b/eval-final-projet/output/eval23.mips
@@ -0,0 +1,58 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t1, e0
+j e2
+e0 :
+li $v0 5
+syscall
+move $t0, $v0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+or $t0, $t1, $t2
+j e3
+e2 :
+move $t0 $t1
+e3 :
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $zero e4
+li $t0, 5
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+j e5
+e4:
+e5:
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval23.synt b/eval-final-projet/output/eval23.synt
new file mode 100644
index 0000000..08c8ac7
--- /dev/null
+++ b/eval-final-projet/output/eval23.synt
@@ -0,0 +1,127 @@
+
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ si
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OU
+
+
+
+
+
+
+ lire
+ PARENTHESE_OUVRANTE
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ alors
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval23.tab b/eval-final-projet/output/eval23.tab
new file mode 100644
index 0000000..2a3c2e8
--- /dev/null
+++ b/eval-final-projet/output/eval23.tab
@@ -0,0 +1,5 @@
+------------------------------------------
+base = 1
+sommet = 1
+0 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval24.asynt b/eval-final-projet/output/eval24.asynt
new file mode 100644
index 0000000..7f3b530
--- /dev/null
+++ b/eval-final-projet/output/eval24.asynt
@@ -0,0 +1,65 @@
+
+
+
+ main
+
+
+
+ ou
+ 3
+ 4
+
+
+
+
+
+ et
+ 3
+ 6
+
+
+
+
+
+ ou
+ 3
+
+
+
+
+
+
+
+ et
+ 3
+
+
+
+
+
+
+
+ ou
+ 0
+
+
+
+
+
+
+
+ et
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval24.lex b/eval-final-projet/output/eval24.lex
new file mode 100644
index 0000000..a840965
--- /dev/null
+++ b/eval-final-projet/output/eval24.lex
@@ -0,0 +1,56 @@
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+3 nombre 3
+| symbole OU
+4 nombre 4
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+3 nombre 3
+& symbole ET
+6 nombre 6
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+3 nombre 3
+| symbole OU
+lire mot_clef lire
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+3 nombre 3
+& symbole ET
+lire mot_clef lire
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+0 nombre 0
+| symbole OU
+lire mot_clef lire
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+0 nombre 0
+& symbole ET
+lire mot_clef lire
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval24.mips b/eval-final-projet/output/eval24.mips
new file mode 100644
index 0000000..c010107
--- /dev/null
+++ b/eval-final-projet/output/eval24.mips
@@ -0,0 +1,192 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 3
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t1, e0
+j e2
+e0 :
+li $t0, 4
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+or $t0, $t1, $t2
+j e3
+e2 :
+move $t0 $t1
+e3 :
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+li $t0, 3
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t1, e5
+li $t0, 6
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t2, e5
+and $t0, $t1, $t2
+j e4
+ e5 :
+li $t0 0
+ e4 :
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+li $t0, 3
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t1, e6
+j e8
+e6 :
+li $v0 5
+syscall
+move $t0, $v0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+or $t0, $t1, $t2
+j e9
+e8 :
+move $t0 $t1
+e9 :
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+li $t0, 3
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t1, e11
+li $v0 5
+syscall
+move $t0, $v0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t2, e11
+and $t0, $t1, $t2
+j e10
+ e11 :
+li $t0 0
+ e10 :
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t1, e12
+j e14
+e12 :
+li $v0 5
+syscall
+move $t0, $v0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+or $t0, $t1, $t2
+j e15
+e14 :
+move $t0 $t1
+e15 :
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t1, e17
+li $v0 5
+syscall
+move $t0, $v0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+beq $zero, $t2, e17
+and $t0, $t1, $t2
+j e16
+ e17 :
+li $t0 0
+ e16 :
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval24.synt b/eval-final-projet/output/eval24.synt
new file mode 100644
index 0000000..d08fc77
--- /dev/null
+++ b/eval-final-projet/output/eval24.synt
@@ -0,0 +1,375 @@
+
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OU
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+ ET
+
+
+
+
+
+ 6
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OU
+
+
+
+
+
+
+ lire
+ PARENTHESE_OUVRANTE
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+ ET
+
+
+
+
+
+ lire
+ PARENTHESE_OUVRANTE
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OU
+
+
+
+
+
+
+ lire
+ PARENTHESE_OUVRANTE
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ ET
+
+
+
+
+
+ lire
+ PARENTHESE_OUVRANTE
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval24.tab b/eval-final-projet/output/eval24.tab
new file mode 100644
index 0000000..2a3c2e8
--- /dev/null
+++ b/eval-final-projet/output/eval24.tab
@@ -0,0 +1,5 @@
+------------------------------------------
+base = 1
+sommet = 1
+0 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval25.synt b/eval-final-projet/output/eval25.synt
new file mode 100644
index 0000000..e69de29
diff --git a/eval-final-projet/output/eval3-err.synt.xml b/eval-final-projet/output/eval3-err.synt.xml
new file mode 100644
index 0000000..b6a708d
--- /dev/null
+++ b/eval-final-projet/output/eval3-err.synt.xml
@@ -0,0 +1,13 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+Fonction procedure introuvable
diff --git a/eval-final-projet/output/eval3.asynt b/eval-final-projet/output/eval3.asynt
new file mode 100644
index 0000000..5a3244d
--- /dev/null
+++ b/eval-final-projet/output/eval3.asynt
@@ -0,0 +1,19 @@
+
+
+ $a
+
+
+
+ main
+
+
+
+ fois
+ 5
+ 2
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval3.lex b/eval-final-projet/output/eval3.lex
new file mode 100644
index 0000000..a569a71
--- /dev/null
+++ b/eval-final-projet/output/eval3.lex
@@ -0,0 +1,16 @@
+entier mot_clef entier
+$a id_variable $a
+; symbole POINT_VIRGULE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+5 nombre 5
+* symbole FOIS
+2 nombre 2
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval3.mips b/eval-final-projet/output/eval3.mips
new file mode 100644
index 0000000..74cae41
--- /dev/null
+++ b/eval-final-projet/output/eval3.mips
@@ -0,0 +1,42 @@
+.data
+$$a: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 5
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+mult $t1, $t2
+mflo $t0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval3.synt b/eval-final-projet/output/eval3.synt
new file mode 100644
index 0000000..4d058f0
--- /dev/null
+++ b/eval-final-projet/output/eval3.synt
@@ -0,0 +1,77 @@
+
+
+
+
+ entier
+ $a
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 5
+
+
+ FOIS
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval3.tab b/eval-final-projet/output/eval3.tab
new file mode 100644
index 0000000..91bc69d
--- /dev/null
+++ b/eval-final-projet/output/eval3.tab
@@ -0,0 +1,6 @@
+------------------------------------------
+base = 2
+sommet = 2
+0 $a GLOBALE ENTIER 0 -1
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval4-err.synt.xml b/eval-final-projet/output/eval4-err.synt.xml
new file mode 100644
index 0000000..f4723a6
--- /dev/null
+++ b/eval-final-projet/output/eval4-err.synt.xml
@@ -0,0 +1,16 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+Variable $a non déclaré
diff --git a/eval-final-projet/output/eval4.asynt b/eval-final-projet/output/eval4.asynt
new file mode 100644
index 0000000..e419965
--- /dev/null
+++ b/eval-final-projet/output/eval4.asynt
@@ -0,0 +1,106 @@
+
+
+
+ max
+
+ $a
+
+ $b
+
+
+
+
+
+ inf
+
+ $a
+
+
+ $b
+
+
+
+
+
+ $b
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+ main
+
+ $v_1
+
+ $v_2
+
+
+
+
+ $v_1
+
+
+
+
+
+ $v_2
+
+
+
+
+
+
+ egal
+
+
+ max
+
+
+ $v_1
+
+
+
+ $v_2
+
+
+
+
+
+
+
+
+ $v_1
+
+
+
+
+
+ $v_1
+
+
+
+
+
+
+ $v_2
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval4.lex b/eval-final-projet/output/eval4.lex
new file mode 100644
index 0000000..5b96821
--- /dev/null
+++ b/eval-final-projet/output/eval4.lex
@@ -0,0 +1,72 @@
+max id_fonction max
+( symbole PARENTHESE_OUVRANTE
+entier mot_clef entier
+$a id_variable $a
+, symbole VIRGULE
+entier mot_clef entier
+$b id_variable $b
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+si mot_clef si
+$a id_variable $a
+< symbole INFERIEUR
+$b id_variable $b
+alors mot_clef alors
+{ symbole ACCOLADE_OUVRANTE
+retour mot_clef retour
+$b id_variable $b
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+retour mot_clef retour
+$a id_variable $a
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+entier mot_clef entier
+$v_1 id_variable $v_1
+, symbole VIRGULE
+entier mot_clef entier
+$v_2 id_variable $v_2
+; symbole POINT_VIRGULE
+{ symbole ACCOLADE_OUVRANTE
+$v_1 id_variable $v_1
+= symbole EGAL
+lire mot_clef lire
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+$v_2 id_variable $v_2
+= symbole EGAL
+lire mot_clef lire
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+si mot_clef si
+max id_fonction max
+( symbole PARENTHESE_OUVRANTE
+$v_1 id_variable $v_1
+, symbole VIRGULE
+$v_2 id_variable $v_2
+) symbole PARENTHESE_FERMANTE
+= symbole EGAL
+$v_1 id_variable $v_1
+alors mot_clef alors
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+$v_1 id_variable $v_1
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+sinon mot_clef sinon
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+$v_2 id_variable $v_2
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval4.mips b/eval-final-projet/output/eval4.mips
new file mode 100644
index 0000000..187d585
--- /dev/null
+++ b/eval-final-projet/output/eval4.mips
@@ -0,0 +1,146 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+max :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+lw $t0, 8($fp) #variable argument $a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 4($fp) #variable argument $b
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+blt $t1, $t2 e0
+li $t0, 0
+e0:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $zero e1
+lw $t0, 4($fp) #variable argument $b
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0 12($fp) #Adresse de retour
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+jr $ra
+j e2
+e1:
+e2:
+lw $t0, 8($fp) #variable argument $a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0 12($fp) #Adresse de retour
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+jr $ra
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4
+subi $sp, $sp, 4
+li $v0 5
+syscall
+move $t0, $v0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+li $v0 5
+syscall
+move $t0, $v0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -12($fp) #variable locale
+subi $sp, $sp, 4 #Val Retour
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, -12($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal max
+addi $sp, $sp, 8 #désalocation des arguments
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+beq $t1, $t2 e3
+li $t0, 0
+e3:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $zero e4
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+j e5
+e4:
+lw $t0, -12($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+e5:
+addi $sp, $sp 8 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval4.synt b/eval-final-projet/output/eval4.synt
new file mode 100644
index 0000000..08f06d7
--- /dev/null
+++ b/eval-final-projet/output/eval4.synt
@@ -0,0 +1,513 @@
+
+
+
+
+
+ max
+
+ PARENTHESE_OUVRANTE
+
+
+
+ entier
+ $a
+
+
+
+
+ VIRGULE
+
+ entier
+ $b
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ si
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+ INFERIEUR
+
+
+
+
+ $b
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ alors
+
+ ACCOLADE_OUVRANTE
+
+
+
+ retour
+
+
+
+
+
+
+
+
+ $b
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+
+ retour
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ entier
+ $v_1
+
+
+
+
+ VIRGULE
+
+ entier
+ $v_2
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $v_1
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ lire
+ PARENTHESE_OUVRANTE
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $v_2
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ lire
+ PARENTHESE_OUVRANTE
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ si
+
+
+
+
+
+
+
+
+ max
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+
+ $v_1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VIRGULE
+
+
+
+
+
+
+
+
+ $v_2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+
+
+
+
+
+ EGAL
+
+
+
+
+ $v_1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ alors
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ $v_1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+ sinon
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ $v_2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval4.tab b/eval-final-projet/output/eval4.tab
new file mode 100644
index 0000000..3d3086c
--- /dev/null
+++ b/eval-final-projet/output/eval4.tab
@@ -0,0 +1,15 @@
+------------------------------------------
+base = 1
+sommet = 3
+0 max GLOBALE FONCTION 0 2
+1 $a ARGUMENT ENTIER 0 -1
+2 $b ARGUMENT ENTIER 4 -1
+------------------------------------------
+------------------------------------------
+base = 2
+sommet = 4
+0 max GLOBALE FONCTION 0 2
+1 main GLOBALE FONCTION 0 0
+2 $v_1 LOCALE ENTIER 0 -1
+3 $v_2 LOCALE ENTIER 4 -1
+------------------------------------------
diff --git a/eval-final-projet/output/eval5-err.synt.xml b/eval-final-projet/output/eval5-err.synt.xml
new file mode 100644
index 0000000..a746856
--- /dev/null
+++ b/eval-final-projet/output/eval5-err.synt.xml
@@ -0,0 +1,3 @@
+.data
+$$a: .space 4
+Variable $a déjà déclaré
diff --git a/eval-final-projet/output/eval5.asynt b/eval-final-projet/output/eval5.asynt
new file mode 100644
index 0000000..f1106e5
--- /dev/null
+++ b/eval-final-projet/output/eval5.asynt
@@ -0,0 +1,418 @@
+
+
+ $tab[10]
+
+
+
+ initialiser
+
+
+
+ $tab
+ 0
+
+ 8
+
+
+
+
+ $tab
+ 1
+
+ 6
+
+
+
+
+ $tab
+ 2
+
+ 9
+
+
+
+
+ $tab
+ 3
+
+ 9
+
+
+
+
+ $tab
+ 4
+
+ 4
+
+
+
+
+ $tab
+ 5
+
+ 2
+
+
+
+
+ $tab
+ 6
+
+ 3
+
+
+
+
+ $tab
+ 7
+
+ 1
+
+
+
+
+ $tab
+ 8
+
+ 4
+
+
+
+
+ $tab
+ 9
+
+ 5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ afficher
+
+ $n
+
+
+ $i
+
+
+
+ $i
+ 0
+
+
+
+
+ inf
+
+ $i
+
+
+ $n
+
+
+
+
+
+
+ $tab
+
+ $i
+
+
+
+
+
+
+ $i
+
+ plus
+
+ $i
+
+ 1
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+ echanger
+
+ $i
+
+ $j
+
+
+
+ $temp
+
+
+
+ $temp
+
+
+ $tab
+
+ $j
+
+
+
+
+
+
+
+ $tab
+
+ $j
+
+
+
+
+ $tab
+
+ $i
+
+
+
+
+
+
+
+ $tab
+
+ $i
+
+
+
+ $temp
+
+
+
+
+
+
+
+
+ trier
+
+ $n
+
+
+ $echange
+
+ $j
+
+ $m
+
+
+
+
+
+ $m
+
+ $n
+
+
+
+
+ $echange
+ 1
+
+
+
+
+ egal
+
+ $echange
+
+ 1
+
+
+
+ $echange
+ 0
+
+
+
+ $j
+ 0
+
+
+
+
+ inf
+
+ $j
+
+
+ moins
+
+ $m
+
+ 1
+
+
+
+
+
+ inf
+
+
+ $tab
+
+ plus
+
+ $j
+
+ 1
+
+
+
+
+
+ $tab
+
+ $j
+
+
+
+
+
+
+
+ echanger
+
+
+ $j
+
+
+
+ plus
+
+ $j
+
+ 1
+
+
+
+
+
+
+
+
+
+ $echange
+ 1
+
+
+
+
+
+
+ $j
+
+ plus
+
+ $j
+
+ 1
+
+
+
+
+
+
+
+ $m
+
+ moins
+
+ $m
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ main
+
+
+
+ initialiser
+
+
+
+
+
+
+
+ afficher
+
+ 10
+
+
+
+
+
+
+
+
+ trier
+
+ 10
+
+
+
+
+
+
+
+
+ afficher
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval5.lex b/eval-final-projet/output/eval5.lex
new file mode 100644
index 0000000..457125e
--- /dev/null
+++ b/eval-final-projet/output/eval5.lex
@@ -0,0 +1,271 @@
+entier mot_clef entier
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+10 nombre 10
+] symbole CROCHET_FERMANT
+; symbole POINT_VIRGULE
+initialiser id_fonction initialiser
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+0 nombre 0
+] symbole CROCHET_FERMANT
+= symbole EGAL
+8 nombre 8
+; symbole POINT_VIRGULE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+1 nombre 1
+] symbole CROCHET_FERMANT
+= symbole EGAL
+6 nombre 6
+; symbole POINT_VIRGULE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+2 nombre 2
+] symbole CROCHET_FERMANT
+= symbole EGAL
+9 nombre 9
+; symbole POINT_VIRGULE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+3 nombre 3
+] symbole CROCHET_FERMANT
+= symbole EGAL
+9 nombre 9
+; symbole POINT_VIRGULE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+4 nombre 4
+] symbole CROCHET_FERMANT
+= symbole EGAL
+4 nombre 4
+; symbole POINT_VIRGULE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+5 nombre 5
+] symbole CROCHET_FERMANT
+= symbole EGAL
+2 nombre 2
+; symbole POINT_VIRGULE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+6 nombre 6
+] symbole CROCHET_FERMANT
+= symbole EGAL
+3 nombre 3
+; symbole POINT_VIRGULE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+7 nombre 7
+] symbole CROCHET_FERMANT
+= symbole EGAL
+1 nombre 1
+; symbole POINT_VIRGULE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+8 nombre 8
+] symbole CROCHET_FERMANT
+= symbole EGAL
+4 nombre 4
+; symbole POINT_VIRGULE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+9 nombre 9
+] symbole CROCHET_FERMANT
+= symbole EGAL
+5 nombre 5
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+afficher id_fonction afficher
+( symbole PARENTHESE_OUVRANTE
+entier mot_clef entier
+$n id_variable $n
+) symbole PARENTHESE_FERMANTE
+entier mot_clef entier
+$i id_variable $i
+; symbole POINT_VIRGULE
+{ symbole ACCOLADE_OUVRANTE
+$i id_variable $i
+= symbole EGAL
+0 nombre 0
+; symbole POINT_VIRGULE
+tantque mot_clef tantque
+$i id_variable $i
+< symbole INFERIEUR
+$n id_variable $n
+faire mot_clef faire
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+$i id_variable $i
+] symbole CROCHET_FERMANT
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+$i id_variable $i
+= symbole EGAL
+$i id_variable $i
++ symbole PLUS
+1 nombre 1
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+0 nombre 0
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+echanger id_fonction echanger
+( symbole PARENTHESE_OUVRANTE
+entier mot_clef entier
+$i id_variable $i
+, symbole VIRGULE
+entier mot_clef entier
+$j id_variable $j
+) symbole PARENTHESE_FERMANTE
+entier mot_clef entier
+$temp id_variable $temp
+; symbole POINT_VIRGULE
+{ symbole ACCOLADE_OUVRANTE
+$temp id_variable $temp
+= symbole EGAL
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+$j id_variable $j
+] symbole CROCHET_FERMANT
+; symbole POINT_VIRGULE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+$j id_variable $j
+] symbole CROCHET_FERMANT
+= symbole EGAL
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+$i id_variable $i
+] symbole CROCHET_FERMANT
+; symbole POINT_VIRGULE
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+$i id_variable $i
+] symbole CROCHET_FERMANT
+= symbole EGAL
+$temp id_variable $temp
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+trier id_fonction trier
+( symbole PARENTHESE_OUVRANTE
+entier mot_clef entier
+$n id_variable $n
+) symbole PARENTHESE_FERMANTE
+entier mot_clef entier
+$echange id_variable $echange
+, symbole VIRGULE
+entier mot_clef entier
+$j id_variable $j
+, symbole VIRGULE
+entier mot_clef entier
+$m id_variable $m
+; symbole POINT_VIRGULE
+{ symbole ACCOLADE_OUVRANTE
+$m id_variable $m
+= symbole EGAL
+$n id_variable $n
+; symbole POINT_VIRGULE
+$echange id_variable $echange
+= symbole EGAL
+1 nombre 1
+; symbole POINT_VIRGULE
+tantque mot_clef tantque
+$echange id_variable $echange
+= symbole EGAL
+1 nombre 1
+faire mot_clef faire
+{ symbole ACCOLADE_OUVRANTE
+$echange id_variable $echange
+= symbole EGAL
+0 nombre 0
+; symbole POINT_VIRGULE
+$j id_variable $j
+= symbole EGAL
+0 nombre 0
+; symbole POINT_VIRGULE
+tantque mot_clef tantque
+$j id_variable $j
+< symbole INFERIEUR
+$m id_variable $m
+- symbole MOINS
+1 nombre 1
+faire mot_clef faire
+{ symbole ACCOLADE_OUVRANTE
+si mot_clef si
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+$j id_variable $j
++ symbole PLUS
+1 nombre 1
+] symbole CROCHET_FERMANT
+< symbole INFERIEUR
+$tab id_variable $tab
+[ symbole CROCHET_OUVRANT
+$j id_variable $j
+] symbole CROCHET_FERMANT
+alors mot_clef alors
+{ symbole ACCOLADE_OUVRANTE
+echanger id_fonction echanger
+( symbole PARENTHESE_OUVRANTE
+$j id_variable $j
+, symbole VIRGULE
+$j id_variable $j
++ symbole PLUS
+1 nombre 1
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+$echange id_variable $echange
+= symbole EGAL
+1 nombre 1
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+$j id_variable $j
+= symbole EGAL
+$j id_variable $j
++ symbole PLUS
+1 nombre 1
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+$m id_variable $m
+= symbole EGAL
+$m id_variable $m
+- symbole MOINS
+1 nombre 1
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+} symbole ACCOLADE_FERMANTE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+initialiser id_fonction initialiser
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+afficher id_fonction afficher
+( symbole PARENTHESE_OUVRANTE
+10 nombre 10
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+trier id_fonction trier
+( symbole PARENTHESE_OUVRANTE
+10 nombre 10
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+afficher id_fonction afficher
+( symbole PARENTHESE_OUVRANTE
+10 nombre 10
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval5.mips b/eval-final-projet/output/eval5.mips
new file mode 100644
index 0000000..3557338
--- /dev/null
+++ b/eval-final-projet/output/eval5.mips
@@ -0,0 +1,527 @@
+.data
+$$tab: .space 40
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+initialiser :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 8
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+li $t0, 6
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+li $t0, 9
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+li $t0, 9
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 3
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+li $t0, 4
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 4
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+li $t0, 2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 5
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+li $t0, 3
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 6
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 7
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+li $t0, 4
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 8
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+li $t0, 5
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 9
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+afficher :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+e0:
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 4($fp) #variable argument $n
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+blt $t1, $t2 e2
+li $t0, 0
+e2:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $0 e1
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, $$tab($t4)
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+j e0
+e1:
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 4 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+echanger :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4
+lw $t0, 4($fp) #variable argument $j
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, $$tab($t4)
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+lw $t0, 8($fp) #variable argument $i
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, $$tab($t4)
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 4($fp) #variable argument $j
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 8($fp) #variable argument $i
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, $$tab($t4)
+addi $sp, $sp 4 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+trier :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4
+subi $sp, $sp, 4
+subi $sp, $sp, 4
+lw $t0, 4($fp) #variable argument $n
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -16($fp) #variable locale
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+e3:
+lw $t0, -8($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+beq $t1, $t2 e5
+li $t0, 0
+e5:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $0 e4
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+li $t0, 0
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -12($fp) #variable locale
+e6:
+lw $t0, -12($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, -16($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+sub $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+blt $t1, $t2 e8
+li $t0, 0
+e8:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $0 e7
+lw $t0, -12($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, $$tab($t4)
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, -12($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t4, 0($sp)
+addi $sp, $sp, 4
+add $t4,$t4,$t4
+add $t4,$t4,$t4
+lw $t0, $$tab($t4)
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+li $t0, 1
+blt $t1, $t2 e9
+li $t0, 0
+e9:
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+beq $t0 $zero e10
+subi $sp, $sp, 4 #Val Retour
+lw $t0, -12($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, -12($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal echanger
+addi $sp, $sp, 8 #désalocation des arguments
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -8($fp) #variable locale
+j e11
+e10:
+e11:
+lw $t0, -12($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -12($fp) #variable locale
+j e6
+e7:
+lw $t0, -16($fp) #variable locale
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+sub $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+sw $t0, -16($fp) #variable locale
+j e3
+e4:
+addi $sp, $sp 12 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4 #Val Retour
+jal initialiser
+subi $sp, $sp, 4 #Val Retour
+li $t0, 10
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal afficher
+addi $sp, $sp, 4 #désalocation des arguments
+subi $sp, $sp, 4 #Val Retour
+li $t0, 10
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal trier
+addi $sp, $sp, 4 #désalocation des arguments
+subi $sp, $sp, 4 #Val Retour
+li $t0, 10
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal afficher
+addi $sp, $sp, 4 #désalocation des arguments
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval5.synt b/eval-final-projet/output/eval5.synt
new file mode 100644
index 0000000..77a518b
--- /dev/null
+++ b/eval-final-projet/output/eval5.synt
@@ -0,0 +1,2146 @@
+
+
+
+
+ entier
+ $tab
+
+ CROCHET_OUVRANT
+ 10
+ CROCHET_FERMANT
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ initialiser
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+ 8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+ 6
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+ 9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+ 9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+ 5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+ 6
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+ 7
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+ 8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+ 9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+ 5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ afficher
+
+ PARENTHESE_OUVRANTE
+
+
+
+ entier
+ $n
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ entier
+ $i
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $i
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ tantque
+
+
+
+
+
+
+
+
+ $i
+
+
+
+
+
+
+
+
+
+
+
+ INFERIEUR
+
+
+
+
+ $n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ faire
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+
+ $i
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+
+ $i
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $i
+
+
+
+
+
+
+
+
+ PLUS
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ echanger
+
+ PARENTHESE_OUVRANTE
+
+
+
+ entier
+ $i
+
+
+
+
+ VIRGULE
+
+ entier
+ $j
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ entier
+ $temp
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $temp
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+
+ $j
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+
+ $j
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+
+ $i
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+
+ $i
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $temp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ trier
+
+ PARENTHESE_OUVRANTE
+
+
+
+ entier
+ $n
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ entier
+ $echange
+
+
+
+
+ VIRGULE
+
+ entier
+ $j
+
+
+
+
+ VIRGULE
+
+ entier
+ $m
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $m
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $echange
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ tantque
+
+
+
+
+
+
+
+
+ $echange
+
+
+
+
+
+
+
+
+
+
+
+ EGAL
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ faire
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ $echange
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $j
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+ tantque
+
+
+
+
+
+
+
+
+ $j
+
+
+
+
+
+
+
+
+
+
+
+ INFERIEUR
+
+
+
+
+ $m
+
+
+
+
+
+
+
+
+ MOINS
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ faire
+
+ ACCOLADE_OUVRANTE
+
+
+
+ si
+
+
+
+
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+
+ $j
+
+
+
+
+
+
+
+
+ PLUS
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+
+
+
+
+
+
+
+
+ INFERIEUR
+
+
+
+
+ $tab
+
+ CROCHET_OUVRANT
+
+
+
+
+
+
+
+
+ $j
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CROCHET_FERMANT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ alors
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ echanger
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+
+ $j
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VIRGULE
+
+
+
+
+
+
+
+
+ $j
+
+
+
+
+
+
+
+
+ PLUS
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ $echange
+
+
+
+ EGAL
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+
+
+ $j
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $j
+
+
+
+
+
+
+
+
+ PLUS
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+ $m
+
+
+
+ EGAL
+
+
+
+
+
+
+
+
+ $m
+
+
+
+
+
+
+
+
+ MOINS
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ initialiser
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ afficher
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ trier
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+ POINT_VIRGULE
+
+
+
+
+
+
+ afficher
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+ POINT_VIRGULE
+
+
+
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval5.tab b/eval-final-projet/output/eval5.tab
new file mode 100644
index 0000000..b248a59
--- /dev/null
+++ b/eval-final-projet/output/eval5.tab
@@ -0,0 +1,49 @@
+------------------------------------------
+base = 2
+sommet = 2
+0 $tab GLOBALE TABLEAU 0 10
+1 initialiser GLOBALE FONCTION 0 0
+------------------------------------------
+------------------------------------------
+base = 3
+sommet = 5
+0 $tab GLOBALE TABLEAU 0 10
+1 initialiser GLOBALE FONCTION 0 0
+2 afficher GLOBALE FONCTION 0 1
+3 $n ARGUMENT ENTIER 0 -1
+4 $i LOCALE ENTIER 0 -1
+------------------------------------------
+------------------------------------------
+base = 4
+sommet = 7
+0 $tab GLOBALE TABLEAU 0 10
+1 initialiser GLOBALE FONCTION 0 0
+2 afficher GLOBALE FONCTION 0 1
+3 echanger GLOBALE FONCTION 0 2
+4 $i ARGUMENT ENTIER 0 -1
+5 $j ARGUMENT ENTIER 4 -1
+6 $temp LOCALE ENTIER 0 -1
+------------------------------------------
+------------------------------------------
+base = 5
+sommet = 9
+0 $tab GLOBALE TABLEAU 0 10
+1 initialiser GLOBALE FONCTION 0 0
+2 afficher GLOBALE FONCTION 0 1
+3 echanger GLOBALE FONCTION 0 2
+4 trier GLOBALE FONCTION 0 1
+5 $n ARGUMENT ENTIER 0 -1
+6 $echange LOCALE ENTIER 0 -1
+7 $j LOCALE ENTIER 4 -1
+8 $m LOCALE ENTIER 8 -1
+------------------------------------------
+------------------------------------------
+base = 6
+sommet = 6
+0 $tab GLOBALE TABLEAU 0 10
+1 initialiser GLOBALE FONCTION 0 0
+2 afficher GLOBALE FONCTION 0 1
+3 echanger GLOBALE FONCTION 0 2
+4 trier GLOBALE FONCTION 0 1
+5 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval6-err.synt.xml b/eval-final-projet/output/eval6-err.synt.xml
new file mode 100644
index 0000000..f4723a6
--- /dev/null
+++ b/eval-final-projet/output/eval6-err.synt.xml
@@ -0,0 +1,16 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+Variable $a non déclaré
diff --git a/eval-final-projet/output/eval6.asynt b/eval-final-projet/output/eval6.asynt
new file mode 100644
index 0000000..c9f82a0
--- /dev/null
+++ b/eval-final-projet/output/eval6.asynt
@@ -0,0 +1,29 @@
+
+
+ $a
+
+
+
+ procedure
+
+
+ 1
+
+
+
+
+
+ main
+
+
+
+ procedure
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval6.lex b/eval-final-projet/output/eval6.lex
new file mode 100644
index 0000000..f54672c
--- /dev/null
+++ b/eval-final-projet/output/eval6.lex
@@ -0,0 +1,23 @@
+entier mot_clef entier
+$a id_variable $a
+; symbole POINT_VIRGULE
+procedure id_fonction procedure
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+1 nombre 1
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+procedure id_fonction procedure
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval6.mips b/eval-final-projet/output/eval6.mips
new file mode 100644
index 0000000..afeb2bf
--- /dev/null
+++ b/eval-final-projet/output/eval6.mips
@@ -0,0 +1,46 @@
+.data
+$$a: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+procedure :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4 #Val Retour
+jal procedure
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval6.synt b/eval-final-projet/output/eval6.synt
new file mode 100644
index 0000000..8451b47
--- /dev/null
+++ b/eval-final-projet/output/eval6.synt
@@ -0,0 +1,104 @@
+
+
+
+
+ entier
+ $a
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ procedure
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ procedure
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval6.tab b/eval-final-projet/output/eval6.tab
new file mode 100644
index 0000000..52a6119
--- /dev/null
+++ b/eval-final-projet/output/eval6.tab
@@ -0,0 +1,13 @@
+------------------------------------------
+base = 2
+sommet = 2
+0 $a GLOBALE ENTIER 0 -1
+1 procedure GLOBALE FONCTION 0 0
+------------------------------------------
+------------------------------------------
+base = 3
+sommet = 3
+0 $a GLOBALE ENTIER 0 -1
+1 procedure GLOBALE FONCTION 0 0
+2 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval7-err.synt.xml b/eval-final-projet/output/eval7-err.synt.xml
new file mode 100644
index 0000000..cf70be0
--- /dev/null
+++ b/eval-final-projet/output/eval7-err.synt.xml
@@ -0,0 +1,30 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+procedure :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4 #Val Retour
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+Nombre Argument différent pour l'appel à procedure
diff --git a/eval-final-projet/output/eval7.asynt b/eval-final-projet/output/eval7.asynt
new file mode 100644
index 0000000..95531e5
--- /dev/null
+++ b/eval-final-projet/output/eval7.asynt
@@ -0,0 +1,23 @@
+
+
+ $a
+
+
+
+ main
+
+
+
+ plus
+
+ moins
+ 5
+ 3
+
+ 2
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval7.lex b/eval-final-projet/output/eval7.lex
new file mode 100644
index 0000000..c59c081
--- /dev/null
+++ b/eval-final-projet/output/eval7.lex
@@ -0,0 +1,18 @@
+entier mot_clef entier
+$a id_variable $a
+; symbole POINT_VIRGULE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+5 nombre 5
+- symbole MOINS
+3 nombre 3
++ symbole PLUS
+2 nombre 2
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval7.mips b/eval-final-projet/output/eval7.mips
new file mode 100644
index 0000000..bc714e6
--- /dev/null
+++ b/eval-final-projet/output/eval7.mips
@@ -0,0 +1,51 @@
+.data
+$$a: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 5
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 3
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+sub $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+li $t0, 2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t2, 0($sp)
+addi $sp, $sp, 4
+lw $t1, 0($sp)
+addi $sp, $sp, 4
+add $t0, $t1, $t2
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval7.synt b/eval-final-projet/output/eval7.synt
new file mode 100644
index 0000000..62e65c9
--- /dev/null
+++ b/eval-final-projet/output/eval7.synt
@@ -0,0 +1,91 @@
+
+
+
+
+ entier
+ $a
+
+
+
+
+
+
+ POINT_VIRGULE
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 5
+
+
+
+
+
+ MOINS
+
+
+ 3
+
+
+
+
+
+ PLUS
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval7.tab b/eval-final-projet/output/eval7.tab
new file mode 100644
index 0000000..91bc69d
--- /dev/null
+++ b/eval-final-projet/output/eval7.tab
@@ -0,0 +1,6 @@
+------------------------------------------
+base = 2
+sommet = 2
+0 $a GLOBALE ENTIER 0 -1
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval8-err.synt.xml b/eval-final-projet/output/eval8-err.synt.xml
new file mode 100644
index 0000000..250b873
--- /dev/null
+++ b/eval-final-projet/output/eval8-err.synt.xml
@@ -0,0 +1,14 @@
+.data
+$$a: .space 4
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+$a n'est pas un Tableau
diff --git a/eval-final-projet/output/eval8.asynt b/eval-final-projet/output/eval8.asynt
new file mode 100644
index 0000000..3c3faf2
--- /dev/null
+++ b/eval-final-projet/output/eval8.asynt
@@ -0,0 +1,34 @@
+
+
+
+ procedure
+
+ $a
+
+
+
+
+ $a
+
+
+
+
+
+
+ main
+
+
+
+ procedure
+
+ 10
+
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval8.lex b/eval-final-projet/output/eval8.lex
new file mode 100644
index 0000000..631b37d
--- /dev/null
+++ b/eval-final-projet/output/eval8.lex
@@ -0,0 +1,23 @@
+procedure id_fonction procedure
+( symbole PARENTHESE_OUVRANTE
+entier mot_clef entier
+$a id_variable $a
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+$a id_variable $a
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+procedure id_fonction procedure
+( symbole PARENTHESE_OUVRANTE
+10 nombre 10
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval8.mips b/eval-final-projet/output/eval8.mips
new file mode 100644
index 0000000..a04e648
--- /dev/null
+++ b/eval-final-projet/output/eval8.mips
@@ -0,0 +1,49 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+procedure :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+lw $t0, 4($fp) #variable argument $a
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4 #Val Retour
+li $t0, 10
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+jal procedure
+addi $sp, $sp, 4 #désalocation des arguments
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval8.synt b/eval-final-projet/output/eval8.synt
new file mode 100644
index 0000000..ab621d9
--- /dev/null
+++ b/eval-final-projet/output/eval8.synt
@@ -0,0 +1,134 @@
+
+
+
+
+
+ procedure
+
+ PARENTHESE_OUVRANTE
+
+
+
+ entier
+ $a
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ $a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ procedure
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval8.tab b/eval-final-projet/output/eval8.tab
new file mode 100644
index 0000000..e831412
--- /dev/null
+++ b/eval-final-projet/output/eval8.tab
@@ -0,0 +1,12 @@
+------------------------------------------
+base = 1
+sommet = 2
+0 procedure GLOBALE FONCTION 0 1
+1 $a ARGUMENT ENTIER 0 -1
+------------------------------------------
+------------------------------------------
+base = 2
+sommet = 2
+0 procedure GLOBALE FONCTION 0 1
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/output/eval9-err.synt.xml b/eval-final-projet/output/eval9-err.synt.xml
new file mode 100644
index 0000000..e69de29
diff --git a/eval-final-projet/output/eval9.asynt b/eval-final-projet/output/eval9.asynt
new file mode 100644
index 0000000..7e82dc0
--- /dev/null
+++ b/eval-final-projet/output/eval9.asynt
@@ -0,0 +1,26 @@
+
+
+
+ procedure
+
+
+ 1
+
+
+
+
+
+ main
+
+
+
+ procedure
+
+
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval9.lex b/eval-final-projet/output/eval9.lex
new file mode 100644
index 0000000..95dbd62
--- /dev/null
+++ b/eval-final-projet/output/eval9.lex
@@ -0,0 +1,20 @@
+procedure id_fonction procedure
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+ecrire mot_clef ecrire
+( symbole PARENTHESE_OUVRANTE
+1 nombre 1
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+main id_fonction main
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+{ symbole ACCOLADE_OUVRANTE
+procedure id_fonction procedure
+( symbole PARENTHESE_OUVRANTE
+) symbole PARENTHESE_FERMANTE
+; symbole POINT_VIRGULE
+} symbole ACCOLADE_FERMANTE
+ symbole FIN
diff --git a/eval-final-projet/output/eval9.mips b/eval-final-projet/output/eval9.mips
new file mode 100644
index 0000000..a661af0
--- /dev/null
+++ b/eval-final-projet/output/eval9.mips
@@ -0,0 +1,45 @@
+.data
+.text
+__start:
+jal main
+li $v0, 10
+syscall
+procedure :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+li $t0, 1
+subi $sp, $sp, 4
+sw $t0, 0($sp)
+lw $t0, 0($sp)
+addi $sp, $sp, 4
+move $a0, $t0
+li $v0, 1
+syscall
+li $a0, '\n'
+li $v0, 11
+syscall
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
+main :
+subi $sp, $sp, 4
+sw $fp, 0($sp)
+move $fp, $sp
+subi $sp, $sp, 4
+sw $ra, 0($sp)
+subi $sp, $sp, 4 #Val Retour
+jal procedure
+addi $sp, $sp 0 # desallocation variables locales
+lw $ra, 0($sp)
+addi $sp, $sp, 4
+lw $fp, 0($sp)
+addi $sp, $sp, 4
+addi $sp, $sp, 4 #ignore valeur de retour
+jr $ra
diff --git a/eval-final-projet/output/eval9.synt b/eval-final-projet/output/eval9.synt
new file mode 100644
index 0000000..cf9f1f3
--- /dev/null
+++ b/eval-final-projet/output/eval9.synt
@@ -0,0 +1,93 @@
+
+
+
+
+
+ procedure
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+ ecrire
+ PARENTHESE_OUVRANTE
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PARENTHESE_FERMANTE
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+ main
+
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+
+
+
+ ACCOLADE_OUVRANTE
+
+
+
+
+ procedure
+ PARENTHESE_OUVRANTE
+
+
+ PARENTHESE_FERMANTE
+
+ POINT_VIRGULE
+
+
+
+
+
+ ACCOLADE_FERMANTE
+
+
+
+
+
+
+
diff --git a/eval-final-projet/output/eval9.tab b/eval-final-projet/output/eval9.tab
new file mode 100644
index 0000000..a780954
--- /dev/null
+++ b/eval-final-projet/output/eval9.tab
@@ -0,0 +1,11 @@
+------------------------------------------
+base = 1
+sommet = 1
+0 procedure GLOBALE FONCTION 0 0
+------------------------------------------
+------------------------------------------
+base = 2
+sommet = 2
+0 procedure GLOBALE FONCTION 0 0
+1 main GLOBALE FONCTION 0 0
+------------------------------------------
diff --git a/eval-final-projet/testAll.sh b/eval-final-projet/testAll.sh
index 379fe18..b811c47 100755
--- a/eval-final-projet/testAll.sh
+++ b/eval-final-projet/testAll.sh
@@ -30,13 +30,13 @@
# 1) MODIFIEZ LA VARIABLE CI-DESSOUS AVEC LE CHEMIN VERS VOTRE COMPILATEUR
-MYCOMPILO="../../TP/src/compilo"
+MYCOMPILO="../compilateur-l"
# 2) DÉCOMMENTEZ + MODIFIEZ LES COMMANDES POUR GÉNÉRER LES DIFFÉRENTES SORTIES
MYCOMPILODEFAULT="${MYCOMPILO}" # utilisé pour test reconnaissance et erreur
-#MYCOMPILOLEX="${MYCOMPILO} -l" # exécuter l'analyseur lexical
-#MYCOMPILOSYNT="${MYCOMPILO} -s" # exécuter l'analyseur syntaxique
+MYCOMPILOLEX="${MYCOMPILO} -l" # exécuter l'analyseur lexical
+MYCOMPILOSYNT="${MYCOMPILO} -s" # exécuter l'analyseur syntaxique
MYCOMPILOASYNT="${MYCOMPILO} -a" # afficher l'arbre abstrait
MYCOMPILOTAB="${MYCOMPILO} -t" # afficher les tables des symboles
MYCOMPILOMIPS="${MYCOMPILO} -m" # générer code MIPS
diff --git a/src/parcours.c b/src/parcours.c
index cd5ebfa..20826fc 100644
--- a/src/parcours.c
+++ b/src/parcours.c
@@ -499,7 +499,7 @@ void parcours_opExp(n_exp *n)
parcours_exp(n->u.opExp_.op1);
sprintf(tmp, "$t%d", iRegistre2);
depile(tmp);
- sprintf(tmp,"beq $zero, $t%d, %s",iRegistre2,faux1);
+ sprintf(tmp,"beq $zero, $t%d, %s",iRegistre2, faux1);
printMips(tmp);
sprintf(tmp,"j %s",vrai);
printMips(tmp);
@@ -507,19 +507,19 @@ void parcours_opExp(n_exp *n)
printMips(tmp);
parcours_exp(n->u.opExp_.op2);
- sprintf(tmp, "$t%d", iRegistre2);
+ sprintf(tmp, "$t%d", iRegistre3);
depile(tmp);
- sprintf(tmp,"beq $zero $t%d %s",iRegistre2,faux2);
- sprintf(tmp, "%s :", vrai);
- printMips(tmp);
- sprintf(tmp,"li $t%d 1",iRegistre);
+
+ sprintf(tmp,"or $t%d, $t%d, $t%d",iRegistre, iRegistre2, iRegistre3);
printMips(tmp);
+
sprintf(tmp,"j %s",empile);
printMips(tmp);
- sprintf(tmp,"%s :",faux2);
+ sprintf(tmp, "%s :", vrai);
printMips(tmp);
- sprintf(tmp,"li $t%d 0",iRegistre);
+ sprintf(tmp,"move $t%d $t%d",iRegistre, iRegistre2);
printMips(tmp);
+
sprintf(tmp,"%s : ", empile);
printMips(tmp);
} else if(n->u.opExp_.op == et) {
@@ -531,8 +531,8 @@ void parcours_opExp(n_exp *n)
parcours_exp(n->u.opExp_.op1);
sprintf(tmp, "$t%d", iRegistre2);
depile(tmp);
- sprintf(tmp,"li $t%d, 1",iRegistre);
- printMips(tmp);
+ //sprintf(tmp,"li $t%d, 1",iRegistre);
+ //printMips(tmp);
sprintf(tmp,"beq $zero, $t%d, %s",iRegistre2,faux);
printMips(tmp);
@@ -542,6 +542,11 @@ void parcours_opExp(n_exp *n)
sprintf(tmp,"beq $zero, $t%d, %s",iRegistre3,faux);
printMips(tmp);
+ //--
+ sprintf(tmp,"and $t%d, $t%d, $t%d",iRegistre, iRegistre2, iRegistre3);
+ printMips(tmp);
+ //--
+
sprintf(tmp,"j %s", empile);
printMips(tmp);