Repare & et |
This commit is contained in:
BIN
eval-final-projet/compare_arbres_xml
Executable file
BIN
eval-final-projet/compare_arbres_xml
Executable file
Binary file not shown.
0
eval-final-projet/output/eval1-err.synt.xml
Normal file
0
eval-final-projet/output/eval1-err.synt.xml
Normal file
23
eval-final-projet/output/eval1.asynt
Normal file
23
eval-final-projet/output/eval1.asynt
Normal file
@@ -0,0 +1,23 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<varDec>$a</varDec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$a</var_simple>
|
||||
<intExp>1</intExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
18
eval-final-projet/output/eval1.lex
Normal file
18
eval-final-projet/output/eval1.lex
Normal file
@@ -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
|
||||
37
eval-final-projet/output/eval1.mips
Normal file
37
eval-final-projet/output/eval1.mips
Normal file
@@ -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
|
||||
113
eval-final-projet/output/eval1.synt
Normal file
113
eval-final-projet/output/eval1.synt
Normal file
@@ -0,0 +1,113 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$a</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
6
eval-final-projet/output/eval1.tab
Normal file
6
eval-final-projet/output/eval1.tab
Normal file
@@ -0,0 +1,6 @@
|
||||
------------------------------------------
|
||||
base = 2
|
||||
sommet = 2
|
||||
0 $a GLOBALE ENTIER 0 -1
|
||||
1 main GLOBALE FONCTION 0 0
|
||||
------------------------------------------
|
||||
0
eval-final-projet/output/eval10-err.synt.xml
Normal file
0
eval-final-projet/output/eval10-err.synt.xml
Normal file
28
eval-final-projet/output/eval10.asynt
Normal file
28
eval-final-projet/output/eval10.asynt
Normal file
@@ -0,0 +1,28 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
procedure
|
||||
<l_instr>
|
||||
<instr_retour>
|
||||
<intExp>1</intExp>
|
||||
</instr_retour>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<appelExp>
|
||||
<appel>
|
||||
procedure
|
||||
<l_exp>
|
||||
</l_exp>
|
||||
</appel>
|
||||
</appelExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
21
eval-final-projet/output/eval10.lex
Normal file
21
eval-final-projet/output/eval10.lex
Normal file
@@ -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
|
||||
54
eval-final-projet/output/eval10.mips
Normal file
54
eval-final-projet/output/eval10.mips
Normal file
@@ -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
|
||||
118
eval-final-projet/output/eval10.synt
Normal file
118
eval-final-projet/output/eval10.synt
Normal file
@@ -0,0 +1,118 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>procedure</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionRetour>
|
||||
<mot_clef>retour</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionRetour>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<appelFct>
|
||||
<id_fonction>procedure</id_fonction>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<listeExpressions>
|
||||
</listeExpressions>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</appelFct>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
11
eval-final-projet/output/eval10.tab
Normal file
11
eval-final-projet/output/eval10.tab
Normal file
@@ -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
|
||||
------------------------------------------
|
||||
34
eval-final-projet/output/eval11-err.synt.xml
Normal file
34
eval-final-projet/output/eval11-err.synt.xml
Normal file
@@ -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
|
||||
37
eval-final-projet/output/eval11.asynt
Normal file
37
eval-final-projet/output/eval11.asynt
Normal file
@@ -0,0 +1,37 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
procedure
|
||||
<l_dec>
|
||||
<varDec>$a</varDec>
|
||||
</l_dec>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$a</var_simple>
|
||||
<intExp>1</intExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_appel>
|
||||
<appel>
|
||||
procedure
|
||||
<l_exp>
|
||||
</l_exp>
|
||||
</appel>
|
||||
</instr_appel>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
27
eval-final-projet/output/eval11.lex
Normal file
27
eval-final-projet/output/eval11.lex
Normal file
@@ -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
|
||||
52
eval-final-projet/output/eval11.mips
Normal file
52
eval-final-projet/output/eval11.mips
Normal file
@@ -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
|
||||
146
eval-final-projet/output/eval11.synt
Normal file
146
eval-final-projet/output/eval11.synt
Normal file
@@ -0,0 +1,146 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>procedure</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$a</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAppel>
|
||||
<appelFct>
|
||||
<id_fonction>procedure</id_fonction>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<listeExpressions>
|
||||
</listeExpressions>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</appelFct>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAppel>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
12
eval-final-projet/output/eval11.tab
Normal file
12
eval-final-projet/output/eval11.tab
Normal file
@@ -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
|
||||
------------------------------------------
|
||||
7
eval-final-projet/output/eval12-err.synt.xml
Normal file
7
eval-final-projet/output/eval12-err.synt.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
.data
|
||||
.text
|
||||
__start:
|
||||
jal main
|
||||
li $v0, 10
|
||||
syscall
|
||||
Fonction main non trouvé
|
||||
20
eval-final-projet/output/eval12.asynt
Normal file
20
eval-final-projet/output/eval12.asynt
Normal file
@@ -0,0 +1,20 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<varDec>$a</varDec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_si>
|
||||
<intExp>1</intExp>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<intExp>1</intExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</instr_si>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
19
eval-final-projet/output/eval12.lex
Normal file
19
eval-final-projet/output/eval12.lex
Normal file
@@ -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
|
||||
40
eval-final-projet/output/eval12.mips
Normal file
40
eval-final-projet/output/eval12.mips
Normal file
@@ -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
|
||||
112
eval-final-projet/output/eval12.synt
Normal file
112
eval-final-projet/output/eval12.synt
Normal file
@@ -0,0 +1,112 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$a</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionSi>
|
||||
<mot_clef>si</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<mot_clef>alors</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
<optSinon>
|
||||
</optSinon>
|
||||
</instructionSi>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
6
eval-final-projet/output/eval12.tab
Normal file
6
eval-final-projet/output/eval12.tab
Normal file
@@ -0,0 +1,6 @@
|
||||
------------------------------------------
|
||||
base = 2
|
||||
sommet = 2
|
||||
0 $a GLOBALE ENTIER 0 -1
|
||||
1 main GLOBALE FONCTION 0 0
|
||||
------------------------------------------
|
||||
25
eval-final-projet/output/eval13.asynt
Normal file
25
eval-final-projet/output/eval13.asynt
Normal file
@@ -0,0 +1,25 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<varDec>$a</varDec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_si>
|
||||
<intExp>0</intExp>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<intExp>1</intExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<intExp>0</intExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</instr_si>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
27
eval-final-projet/output/eval13.lex
Normal file
27
eval-final-projet/output/eval13.lex
Normal file
@@ -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
|
||||
51
eval-final-projet/output/eval13.mips
Normal file
51
eval-final-projet/output/eval13.mips
Normal file
@@ -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
|
||||
154
eval-final-projet/output/eval13.synt
Normal file
154
eval-final-projet/output/eval13.synt
Normal file
@@ -0,0 +1,154 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$a</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionSi>
|
||||
<mot_clef>si</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>0</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<mot_clef>alors</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
<optSinon>
|
||||
<mot_clef>sinon</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>0</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</optSinon>
|
||||
</instructionSi>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
6
eval-final-projet/output/eval13.tab
Normal file
6
eval-final-projet/output/eval13.tab
Normal file
@@ -0,0 +1,6 @@
|
||||
------------------------------------------
|
||||
base = 2
|
||||
sommet = 2
|
||||
0 $a GLOBALE ENTIER 0 -1
|
||||
1 main GLOBALE FONCTION 0 0
|
||||
------------------------------------------
|
||||
96
eval-final-projet/output/eval14.asynt
Normal file
96
eval-final-projet/output/eval14.asynt
Normal file
@@ -0,0 +1,96 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<tabDec>$tab[10]</tabDec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_dec>
|
||||
<varDec>$a</varDec>
|
||||
</l_dec>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$a</var_simple>
|
||||
<intExp>0</intExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_tantque>
|
||||
<opExp>
|
||||
inf
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
<intExp>10</intExp>
|
||||
</opExp>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_indicee>
|
||||
<var_base_tableau>$tab</var_base_tableau>
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
</var_indicee>
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$a</var_simple>
|
||||
<opExp>
|
||||
plus
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
<intExp>1</intExp>
|
||||
</opExp>
|
||||
</instr_affect>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</instr_tantque>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$a</var_simple>
|
||||
<intExp>0</intExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_tantque>
|
||||
<opExp>
|
||||
inf
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
<intExp>10</intExp>
|
||||
</opExp>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<varExp>
|
||||
<var_indicee>
|
||||
<var_base_tableau>$tab</var_base_tableau>
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
</var_indicee>
|
||||
</varExp>
|
||||
</instr_ecrire>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$a</var_simple>
|
||||
<opExp>
|
||||
plus
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
<intExp>1</intExp>
|
||||
</opExp>
|
||||
</instr_affect>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</instr_tantque>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
64
eval-final-projet/output/eval14.lex
Normal file
64
eval-final-projet/output/eval14.lex
Normal file
@@ -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
|
||||
140
eval-final-projet/output/eval14.mips
Normal file
140
eval-final-projet/output/eval14.mips
Normal file
@@ -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
|
||||
487
eval-final-projet/output/eval14.synt
Normal file
487
eval-final-projet/output/eval14.synt
Normal file
@@ -0,0 +1,487 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$tab</id_variable>
|
||||
<optTailleTableau>
|
||||
<symbole>CROCHET_OUVRANT</symbole>
|
||||
<nombre>10</nombre>
|
||||
<symbole>CROCHET_FERMANT</symbole>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$a</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>0</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionTantque>
|
||||
<mot_clef>tantque</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
<symbole>INFERIEUR</symbole>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>10</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<mot_clef>faire</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$tab</id_variable>
|
||||
<optIndice>
|
||||
<symbole>CROCHET_OUVRANT</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>CROCHET_FERMANT</symbole>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
<symbole>PLUS</symbole>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</instructionTantque>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>0</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionTantque>
|
||||
<mot_clef>tantque</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
<symbole>INFERIEUR</symbole>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>10</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<mot_clef>faire</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$tab</id_variable>
|
||||
<optIndice>
|
||||
<symbole>CROCHET_OUVRANT</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>CROCHET_FERMANT</symbole>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
<symbole>PLUS</symbole>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</instructionTantque>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
7
eval-final-projet/output/eval14.tab
Normal file
7
eval-final-projet/output/eval14.tab
Normal file
@@ -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
|
||||
------------------------------------------
|
||||
29
eval-final-projet/output/eval15.asynt
Normal file
29
eval-final-projet/output/eval15.asynt
Normal file
@@ -0,0 +1,29 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<tabDec>$tab[10]</tabDec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_indicee>
|
||||
<var_base_tableau>$tab</var_base_tableau>
|
||||
<intExp>4</intExp>
|
||||
</var_indicee>
|
||||
<intExp>4</intExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<varExp>
|
||||
<var_indicee>
|
||||
<var_base_tableau>$tab</var_base_tableau>
|
||||
<intExp>4</intExp>
|
||||
</var_indicee>
|
||||
</varExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
27
eval-final-projet/output/eval15.lex
Normal file
27
eval-final-projet/output/eval15.lex
Normal file
@@ -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
|
||||
51
eval-final-projet/output/eval15.mips
Normal file
51
eval-final-projet/output/eval15.mips
Normal file
@@ -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
|
||||
170
eval-final-projet/output/eval15.synt
Normal file
170
eval-final-projet/output/eval15.synt
Normal file
@@ -0,0 +1,170 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$tab</id_variable>
|
||||
<optTailleTableau>
|
||||
<symbole>CROCHET_OUVRANT</symbole>
|
||||
<nombre>10</nombre>
|
||||
<symbole>CROCHET_FERMANT</symbole>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$tab</id_variable>
|
||||
<optIndice>
|
||||
<symbole>CROCHET_OUVRANT</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>4</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>CROCHET_FERMANT</symbole>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>4</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$tab</id_variable>
|
||||
<optIndice>
|
||||
<symbole>CROCHET_OUVRANT</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>4</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>CROCHET_FERMANT</symbole>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
6
eval-final-projet/output/eval15.tab
Normal file
6
eval-final-projet/output/eval15.tab
Normal file
@@ -0,0 +1,6 @@
|
||||
------------------------------------------
|
||||
base = 2
|
||||
sommet = 2
|
||||
0 $tab GLOBALE TABLEAU 0 10
|
||||
1 main GLOBALE FONCTION 0 0
|
||||
------------------------------------------
|
||||
20
eval-final-projet/output/eval16.asynt
Normal file
20
eval-final-projet/output/eval16.asynt
Normal file
@@ -0,0 +1,20 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<varDec>$a</varDec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_tantque>
|
||||
<intExp>0</intExp>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<intExp>1</intExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</instr_tantque>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
19
eval-final-projet/output/eval16.lex
Normal file
19
eval-final-projet/output/eval16.lex
Normal file
@@ -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
|
||||
40
eval-final-projet/output/eval16.mips
Normal file
40
eval-final-projet/output/eval16.mips
Normal file
@@ -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
|
||||
110
eval-final-projet/output/eval16.synt
Normal file
110
eval-final-projet/output/eval16.synt
Normal file
@@ -0,0 +1,110 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$a</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionTantque>
|
||||
<mot_clef>tantque</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>0</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<mot_clef>faire</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</instructionTantque>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
6
eval-final-projet/output/eval16.tab
Normal file
6
eval-final-projet/output/eval16.tab
Normal file
@@ -0,0 +1,6 @@
|
||||
------------------------------------------
|
||||
base = 2
|
||||
sommet = 2
|
||||
0 $a GLOBALE ENTIER 0 -1
|
||||
1 main GLOBALE FONCTION 0 0
|
||||
------------------------------------------
|
||||
46
eval-final-projet/output/eval17.asynt
Normal file
46
eval-final-projet/output/eval17.asynt
Normal file
@@ -0,0 +1,46 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<varDec>$a</varDec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$a</var_simple>
|
||||
<intExp>0</intExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_tantque>
|
||||
<opExp>
|
||||
inf
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
<intExp>10</intExp>
|
||||
</opExp>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
</instr_ecrire>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$a</var_simple>
|
||||
<opExp>
|
||||
plus
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
<intExp>1</intExp>
|
||||
</opExp>
|
||||
</instr_affect>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</instr_tantque>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
31
eval-final-projet/output/eval17.lex
Normal file
31
eval-final-projet/output/eval17.lex
Normal file
@@ -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
|
||||
75
eval-final-projet/output/eval17.mips
Normal file
75
eval-final-projet/output/eval17.mips
Normal file
@@ -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
|
||||
222
eval-final-projet/output/eval17.synt
Normal file
222
eval-final-projet/output/eval17.synt
Normal file
@@ -0,0 +1,222 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$a</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>0</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionTantque>
|
||||
<mot_clef>tantque</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
<symbole>INFERIEUR</symbole>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>10</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<mot_clef>faire</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
<symbole>PLUS</symbole>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</instructionTantque>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
6
eval-final-projet/output/eval17.tab
Normal file
6
eval-final-projet/output/eval17.tab
Normal file
@@ -0,0 +1,6 @@
|
||||
------------------------------------------
|
||||
base = 2
|
||||
sommet = 2
|
||||
0 $a GLOBALE ENTIER 0 -1
|
||||
1 main GLOBALE FONCTION 0 0
|
||||
------------------------------------------
|
||||
107
eval-final-projet/output/eval18.asynt
Normal file
107
eval-final-projet/output/eval18.asynt
Normal file
@@ -0,0 +1,107 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<varDec>$t0</varDec>
|
||||
<l_dec>
|
||||
<varDec>$t1</varDec>
|
||||
<l_dec>
|
||||
<varDec>$123</varDec>
|
||||
<l_dec>
|
||||
<varDec>$</varDec>
|
||||
<l_dec>
|
||||
<varDec>$$</varDec>
|
||||
<l_dec>
|
||||
<varDec>$$$</varDec>
|
||||
<l_dec>
|
||||
<varDec>$f</varDec>
|
||||
<l_dec>
|
||||
<varDec>$_</varDec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
f
|
||||
<l_dec>
|
||||
<varDec>$$</varDec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<varDec>$$$</varDec>
|
||||
<l_dec>
|
||||
<varDec>$f</varDec>
|
||||
<l_dec>
|
||||
<varDec>$_</varDec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$</var_simple>
|
||||
<opExp>
|
||||
plus
|
||||
<opExp>
|
||||
plus
|
||||
<varExp>
|
||||
<var_simple>$123</var_simple>
|
||||
</varExp>
|
||||
<varExp>
|
||||
<var_simple>$_</var_simple>
|
||||
</varExp>
|
||||
</opExp>
|
||||
<varExp>
|
||||
<var_simple>$$</var_simple>
|
||||
</varExp>
|
||||
</opExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<varExp>
|
||||
<var_simple>$</var_simple>
|
||||
</varExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$t0</var_simple>
|
||||
<intExp>1</intExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$123</var_simple>
|
||||
<opExp>
|
||||
plus
|
||||
<varExp>
|
||||
<var_simple>$t0</var_simple>
|
||||
</varExp>
|
||||
<intExp>0</intExp>
|
||||
</opExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_appel>
|
||||
<appel>
|
||||
f
|
||||
<l_exp>
|
||||
<varExp>
|
||||
<var_simple>$123</var_simple>
|
||||
</varExp>
|
||||
<l_exp>
|
||||
</l_exp>
|
||||
</l_exp>
|
||||
</appel>
|
||||
</instr_appel>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
74
eval-final-projet/output/eval18.lex
Normal file
74
eval-final-projet/output/eval18.lex
Normal file
@@ -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
|
||||
108
eval-final-projet/output/eval18.mips
Normal file
108
eval-final-projet/output/eval18.mips
Normal file
@@ -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
|
||||
401
eval-final-projet/output/eval18.synt
Normal file
401
eval-final-projet/output/eval18.synt
Normal file
@@ -0,0 +1,401 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$t0</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$t1</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$123</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$$</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$$$</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$f</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$_</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>f</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$$</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$$$</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$f</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$_</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$123</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
<symbole>PLUS</symbole>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$_</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
<symbole>PLUS</symbole>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$$</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$t0</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$123</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$t0</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
<symbole>PLUS</symbole>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>0</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAppel>
|
||||
<appelFct>
|
||||
<id_fonction>f</id_fonction>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<listeExpressions>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$123</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<listeExpressionsBis>
|
||||
</listeExpressionsBis>
|
||||
</listeExpressions>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</appelFct>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAppel>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
31
eval-final-projet/output/eval18.tab
Normal file
31
eval-final-projet/output/eval18.tab
Normal file
@@ -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
|
||||
------------------------------------------
|
||||
16
eval-final-projet/output/eval19.asynt
Normal file
16
eval-final-projet/output/eval19.asynt
Normal file
@@ -0,0 +1,16 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<opExp>
|
||||
et
|
||||
<intExp>1</intExp>
|
||||
<intExp>2</intExp>
|
||||
</opExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
13
eval-final-projet/output/eval19.lex
Normal file
13
eval-final-projet/output/eval19.lex
Normal file
@@ -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
|
||||
46
eval-final-projet/output/eval19.mips
Normal file
46
eval-final-projet/output/eval19.mips
Normal file
@@ -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
|
||||
80
eval-final-projet/output/eval19.synt
Normal file
80
eval-final-projet/output/eval19.synt
Normal file
@@ -0,0 +1,80 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
<symbole>ET</symbole>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>2</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
5
eval-final-projet/output/eval19.tab
Normal file
5
eval-final-projet/output/eval19.tab
Normal file
@@ -0,0 +1,5 @@
|
||||
------------------------------------------
|
||||
base = 1
|
||||
sommet = 1
|
||||
0 main GLOBALE FONCTION 0 0
|
||||
------------------------------------------
|
||||
79
eval-final-projet/output/eval2-err.synt.xml
Normal file
79
eval-final-projet/output/eval2-err.synt.xml
Normal file
@@ -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
|
||||
63
eval-final-projet/output/eval2.asynt
Normal file
63
eval-final-projet/output/eval2.asynt
Normal file
@@ -0,0 +1,63 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<varDec>$i</varDec>
|
||||
<l_dec>
|
||||
<varDec>$carre</varDec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$i</var_simple>
|
||||
<intExp>0</intExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_tantque>
|
||||
<opExp>
|
||||
inf
|
||||
<varExp>
|
||||
<var_simple>$i</var_simple>
|
||||
</varExp>
|
||||
<intExp>10</intExp>
|
||||
</opExp>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$carre</var_simple>
|
||||
<opExp>
|
||||
fois
|
||||
<varExp>
|
||||
<var_simple>$i</var_simple>
|
||||
</varExp>
|
||||
<varExp>
|
||||
<var_simple>$i</var_simple>
|
||||
</varExp>
|
||||
</opExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<varExp>
|
||||
<var_simple>$carre</var_simple>
|
||||
</varExp>
|
||||
</instr_ecrire>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$i</var_simple>
|
||||
<opExp>
|
||||
plus
|
||||
<varExp>
|
||||
<var_simple>$i</var_simple>
|
||||
</varExp>
|
||||
<intExp>1</intExp>
|
||||
</opExp>
|
||||
</instr_affect>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</instr_tantque>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
40
eval-final-projet/output/eval2.lex
Normal file
40
eval-final-projet/output/eval2.lex
Normal file
@@ -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
|
||||
93
eval-final-projet/output/eval2.mips
Normal file
93
eval-final-projet/output/eval2.mips
Normal file
@@ -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
|
||||
283
eval-final-projet/output/eval2.synt
Normal file
283
eval-final-projet/output/eval2.synt
Normal file
@@ -0,0 +1,283 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$i</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$carre</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$i</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>0</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionTantque>
|
||||
<mot_clef>tantque</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$i</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
<symbole>INFERIEUR</symbole>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>10</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<mot_clef>faire</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$carre</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$i</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
<symbole>FOIS</symbole>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$i</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$carre</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$i</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$i</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
<symbole>PLUS</symbole>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</instructionTantque>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
7
eval-final-projet/output/eval2.tab
Normal file
7
eval-final-projet/output/eval2.tab
Normal file
@@ -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
|
||||
------------------------------------------
|
||||
93
eval-final-projet/output/eval20.asynt
Normal file
93
eval-final-projet/output/eval20.asynt
Normal file
@@ -0,0 +1,93 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
fact
|
||||
<l_dec>
|
||||
<varDec>$f</varDec>
|
||||
</l_dec>
|
||||
<l_instr>
|
||||
<instr_si>
|
||||
<opExp>
|
||||
ou
|
||||
<opExp>
|
||||
egal
|
||||
<varExp>
|
||||
<var_simple>$f</var_simple>
|
||||
</varExp>
|
||||
<intExp>1</intExp>
|
||||
</opExp>
|
||||
<opExp>
|
||||
egal
|
||||
<varExp>
|
||||
<var_simple>$f</var_simple>
|
||||
</varExp>
|
||||
<intExp>0</intExp>
|
||||
</opExp>
|
||||
</opExp>
|
||||
<l_instr>
|
||||
<instr_retour>
|
||||
<intExp>1</intExp>
|
||||
</instr_retour>
|
||||
</l_instr>
|
||||
<l_instr>
|
||||
<instr_retour>
|
||||
<opExp>
|
||||
fois
|
||||
<appelExp>
|
||||
<appel>
|
||||
fact
|
||||
<l_exp>
|
||||
<opExp>
|
||||
moins
|
||||
<varExp>
|
||||
<var_simple>$f</var_simple>
|
||||
</varExp>
|
||||
<intExp>1</intExp>
|
||||
</opExp>
|
||||
<l_exp>
|
||||
</l_exp>
|
||||
</l_exp>
|
||||
</appel>
|
||||
</appelExp>
|
||||
<varExp>
|
||||
<var_simple>$f</var_simple>
|
||||
</varExp>
|
||||
</opExp>
|
||||
</instr_retour>
|
||||
</l_instr>
|
||||
</instr_si>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_dec>
|
||||
<varDec>$a</varDec>
|
||||
</l_dec>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$a</var_simple>
|
||||
<lireExp>
|
||||
</lireExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<appelExp>
|
||||
<appel>
|
||||
fact
|
||||
<l_exp>
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
<l_exp>
|
||||
</l_exp>
|
||||
</l_exp>
|
||||
</appel>
|
||||
</appelExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
57
eval-final-projet/output/eval20.lex
Normal file
57
eval-final-projet/output/eval20.lex
Normal file
@@ -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
|
||||
156
eval-final-projet/output/eval20.mips
Normal file
156
eval-final-projet/output/eval20.mips
Normal file
@@ -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
|
||||
408
eval-final-projet/output/eval20.synt
Normal file
408
eval-final-projet/output/eval20.synt
Normal file
@@ -0,0 +1,408 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>fact</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$f</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionSi>
|
||||
<mot_clef>si</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$f</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
<symbole>EGAL</symbole>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
<symbole>OU</symbole>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$f</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
<symbole>EGAL</symbole>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>0</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<mot_clef>alors</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionRetour>
|
||||
<mot_clef>retour</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionRetour>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
<optSinon>
|
||||
<mot_clef>sinon</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionRetour>
|
||||
<mot_clef>retour</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<appelFct>
|
||||
<id_fonction>fact</id_fonction>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<listeExpressions>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$f</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
<symbole>MOINS</symbole>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<listeExpressionsBis>
|
||||
</listeExpressionsBis>
|
||||
</listeExpressions>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</appelFct>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
<symbole>FOIS</symbole>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$f</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionRetour>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</optSinon>
|
||||
</instructionSi>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$a</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<mot_clef>lire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<appelFct>
|
||||
<id_fonction>fact</id_fonction>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<listeExpressions>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<listeExpressionsBis>
|
||||
</listeExpressionsBis>
|
||||
</listeExpressions>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</appelFct>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
13
eval-final-projet/output/eval20.tab
Normal file
13
eval-final-projet/output/eval20.tab
Normal file
@@ -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
|
||||
------------------------------------------
|
||||
85
eval-final-projet/output/eval21.asynt
Normal file
85
eval-final-projet/output/eval21.asynt
Normal file
@@ -0,0 +1,85 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
fibo
|
||||
<l_dec>
|
||||
<varDec>$n</varDec>
|
||||
</l_dec>
|
||||
<l_instr>
|
||||
<instr_si>
|
||||
<opExp>
|
||||
inf
|
||||
<varExp>
|
||||
<var_simple>$n</var_simple>
|
||||
</varExp>
|
||||
<intExp>2</intExp>
|
||||
</opExp>
|
||||
<l_instr>
|
||||
<instr_retour>
|
||||
<intExp>1</intExp>
|
||||
</instr_retour>
|
||||
</l_instr>
|
||||
<l_instr>
|
||||
<instr_retour>
|
||||
<opExp>
|
||||
plus
|
||||
<appelExp>
|
||||
<appel>
|
||||
fibo
|
||||
<l_exp>
|
||||
<opExp>
|
||||
moins
|
||||
<varExp>
|
||||
<var_simple>$n</var_simple>
|
||||
</varExp>
|
||||
<intExp>1</intExp>
|
||||
</opExp>
|
||||
<l_exp>
|
||||
</l_exp>
|
||||
</l_exp>
|
||||
</appel>
|
||||
</appelExp>
|
||||
<appelExp>
|
||||
<appel>
|
||||
fibo
|
||||
<l_exp>
|
||||
<opExp>
|
||||
moins
|
||||
<varExp>
|
||||
<var_simple>$n</var_simple>
|
||||
</varExp>
|
||||
<intExp>2</intExp>
|
||||
</opExp>
|
||||
<l_exp>
|
||||
</l_exp>
|
||||
</l_exp>
|
||||
</appel>
|
||||
</appelExp>
|
||||
</opExp>
|
||||
</instr_retour>
|
||||
</l_instr>
|
||||
</instr_si>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<appelExp>
|
||||
<appel>
|
||||
fibo
|
||||
<l_exp>
|
||||
<lireExp>
|
||||
</lireExp>
|
||||
<l_exp>
|
||||
</l_exp>
|
||||
</l_exp>
|
||||
</appel>
|
||||
</appelExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
51
eval-final-projet/output/eval21.lex
Normal file
51
eval-final-projet/output/eval21.lex
Normal file
@@ -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
|
||||
130
eval-final-projet/output/eval21.mips
Normal file
130
eval-final-projet/output/eval21.mips
Normal file
@@ -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
|
||||
360
eval-final-projet/output/eval21.synt
Normal file
360
eval-final-projet/output/eval21.synt
Normal file
@@ -0,0 +1,360 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>fibo</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$n</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionSi>
|
||||
<mot_clef>si</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$n</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
<symbole>INFERIEUR</symbole>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>2</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<mot_clef>alors</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionRetour>
|
||||
<mot_clef>retour</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionRetour>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
<optSinon>
|
||||
<mot_clef>sinon</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionRetour>
|
||||
<mot_clef>retour</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<appelFct>
|
||||
<id_fonction>fibo</id_fonction>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<listeExpressions>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$n</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
<symbole>MOINS</symbole>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<listeExpressionsBis>
|
||||
</listeExpressionsBis>
|
||||
</listeExpressions>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</appelFct>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
<symbole>PLUS</symbole>
|
||||
<terme>
|
||||
<facteur>
|
||||
<appelFct>
|
||||
<id_fonction>fibo</id_fonction>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<listeExpressions>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$n</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
<symbole>MOINS</symbole>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>2</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<listeExpressionsBis>
|
||||
</listeExpressionsBis>
|
||||
</listeExpressions>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</appelFct>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionRetour>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</optSinon>
|
||||
</instructionSi>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<appelFct>
|
||||
<id_fonction>fibo</id_fonction>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<listeExpressions>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<mot_clef>lire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<listeExpressionsBis>
|
||||
</listeExpressionsBis>
|
||||
</listeExpressions>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</appelFct>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
12
eval-final-projet/output/eval21.tab
Normal file
12
eval-final-projet/output/eval21.tab
Normal file
@@ -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
|
||||
------------------------------------------
|
||||
161
eval-final-projet/output/eval22.asynt
Normal file
161
eval-final-projet/output/eval22.asynt
Normal file
@@ -0,0 +1,161 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<varDec>$a</varDec>
|
||||
<l_dec>
|
||||
<varDec>$b</varDec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
pgcd
|
||||
<l_dec>
|
||||
<varDec>$a</varDec>
|
||||
<l_dec>
|
||||
<varDec>$b</varDec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<varDec>$c</varDec>
|
||||
</l_dec>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$c</var_simple>
|
||||
<opExp>
|
||||
moins
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
<opExp>
|
||||
fois
|
||||
<opExp>
|
||||
divise
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
<varExp>
|
||||
<var_simple>$b</var_simple>
|
||||
</varExp>
|
||||
</opExp>
|
||||
<varExp>
|
||||
<var_simple>$b</var_simple>
|
||||
</varExp>
|
||||
</opExp>
|
||||
</opExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_si>
|
||||
<opExp>
|
||||
egal
|
||||
<varExp>
|
||||
<var_simple>$c</var_simple>
|
||||
</varExp>
|
||||
<intExp>0</intExp>
|
||||
</opExp>
|
||||
<l_instr>
|
||||
<instr_retour>
|
||||
<varExp>
|
||||
<var_simple>$b</var_simple>
|
||||
</varExp>
|
||||
</instr_retour>
|
||||
</l_instr>
|
||||
<l_instr>
|
||||
<instr_retour>
|
||||
<appelExp>
|
||||
<appel>
|
||||
pgcd
|
||||
<l_exp>
|
||||
<varExp>
|
||||
<var_simple>$b</var_simple>
|
||||
</varExp>
|
||||
<l_exp>
|
||||
<varExp>
|
||||
<var_simple>$c</var_simple>
|
||||
</varExp>
|
||||
<l_exp>
|
||||
</l_exp>
|
||||
</l_exp>
|
||||
</l_exp>
|
||||
</appel>
|
||||
</appelExp>
|
||||
</instr_retour>
|
||||
</l_instr>
|
||||
</instr_si>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$a</var_simple>
|
||||
<lireExp>
|
||||
</lireExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_affect>
|
||||
<var_simple>$b</var_simple>
|
||||
<lireExp>
|
||||
</lireExp>
|
||||
</instr_affect>
|
||||
<l_instr>
|
||||
<instr_si>
|
||||
<opExp>
|
||||
inf
|
||||
<varExp>
|
||||
<var_simple>$b</var_simple>
|
||||
</varExp>
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
</opExp>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<appelExp>
|
||||
<appel>
|
||||
pgcd
|
||||
<l_exp>
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
<l_exp>
|
||||
<varExp>
|
||||
<var_simple>$b</var_simple>
|
||||
</varExp>
|
||||
<l_exp>
|
||||
</l_exp>
|
||||
</l_exp>
|
||||
</l_exp>
|
||||
</appel>
|
||||
</appelExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<appelExp>
|
||||
<appel>
|
||||
pgcd
|
||||
<l_exp>
|
||||
<varExp>
|
||||
<var_simple>$b</var_simple>
|
||||
</varExp>
|
||||
<l_exp>
|
||||
<varExp>
|
||||
<var_simple>$a</var_simple>
|
||||
</varExp>
|
||||
<l_exp>
|
||||
</l_exp>
|
||||
</l_exp>
|
||||
</l_exp>
|
||||
</appel>
|
||||
</appelExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</instr_si>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
100
eval-final-projet/output/eval22.lex
Normal file
100
eval-final-projet/output/eval22.lex
Normal file
@@ -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
|
||||
197
eval-final-projet/output/eval22.mips
Normal file
197
eval-final-projet/output/eval22.mips
Normal file
@@ -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
|
||||
759
eval-final-projet/output/eval22.synt
Normal file
759
eval-final-projet/output/eval22.synt
Normal file
@@ -0,0 +1,759 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$a</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$b</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>pgcd</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$a</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$b</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$c</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$c</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
<symbole>MOINS</symbole>
|
||||
<terme>
|
||||
<facteur>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
<symbole>DIVISE</symbole>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$b</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
<symbole>FOIS</symbole>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$b</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionSi>
|
||||
<mot_clef>si</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$c</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
<symbole>EGAL</symbole>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>0</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<mot_clef>alors</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionRetour>
|
||||
<mot_clef>retour</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$b</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionRetour>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
<optSinon>
|
||||
<mot_clef>sinon</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionRetour>
|
||||
<mot_clef>retour</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<appelFct>
|
||||
<id_fonction>pgcd</id_fonction>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<listeExpressions>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$b</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<listeExpressionsBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$c</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<listeExpressionsBis>
|
||||
</listeExpressionsBis>
|
||||
</listeExpressionsBis>
|
||||
</listeExpressions>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</appelFct>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionRetour>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</optSinon>
|
||||
</instructionSi>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<mot_clef>lire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionAffect>
|
||||
<var>
|
||||
<id_variable>$b</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
<symbole>EGAL</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<mot_clef>lire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionAffect>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionSi>
|
||||
<mot_clef>si</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$b</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
<symbole>INFERIEUR</symbole>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<mot_clef>alors</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<appelFct>
|
||||
<id_fonction>pgcd</id_fonction>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<listeExpressions>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<listeExpressionsBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$b</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<listeExpressionsBis>
|
||||
</listeExpressionsBis>
|
||||
</listeExpressionsBis>
|
||||
</listeExpressions>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</appelFct>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
<optSinon>
|
||||
<mot_clef>sinon</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<appelFct>
|
||||
<id_fonction>pgcd</id_fonction>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<listeExpressions>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$b</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<listeExpressionsBis>
|
||||
<symbole>VIRGULE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<var>
|
||||
<id_variable>$a</id_variable>
|
||||
<optIndice>
|
||||
</optIndice>
|
||||
</var>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<listeExpressionsBis>
|
||||
</listeExpressionsBis>
|
||||
</listeExpressionsBis>
|
||||
</listeExpressions>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</appelFct>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</optSinon>
|
||||
</instructionSi>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
18
eval-final-projet/output/eval22.tab
Normal file
18
eval-final-projet/output/eval22.tab
Normal file
@@ -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
|
||||
------------------------------------------
|
||||
22
eval-final-projet/output/eval23.asynt
Normal file
22
eval-final-projet/output/eval23.asynt
Normal file
@@ -0,0 +1,22 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_si>
|
||||
<opExp>
|
||||
ou
|
||||
<intExp>1</intExp>
|
||||
<lireExp>
|
||||
</lireExp>
|
||||
</opExp>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<intExp>5</intExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</instr_si>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
20
eval-final-projet/output/eval23.lex
Normal file
20
eval-final-projet/output/eval23.lex
Normal file
@@ -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
|
||||
58
eval-final-projet/output/eval23.mips
Normal file
58
eval-final-projet/output/eval23.mips
Normal file
@@ -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
|
||||
127
eval-final-projet/output/eval23.synt
Normal file
127
eval-final-projet/output/eval23.synt
Normal file
@@ -0,0 +1,127 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionSi>
|
||||
<mot_clef>si</mot_clef>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>1</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
<symbole>OU</symbole>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<mot_clef>lire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<mot_clef>alors</mot_clef>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>5</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
<optSinon>
|
||||
</optSinon>
|
||||
</instructionSi>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
5
eval-final-projet/output/eval23.tab
Normal file
5
eval-final-projet/output/eval23.tab
Normal file
@@ -0,0 +1,5 @@
|
||||
------------------------------------------
|
||||
base = 1
|
||||
sommet = 1
|
||||
0 main GLOBALE FONCTION 0 0
|
||||
------------------------------------------
|
||||
65
eval-final-projet/output/eval24.asynt
Normal file
65
eval-final-projet/output/eval24.asynt
Normal file
@@ -0,0 +1,65 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<opExp>
|
||||
ou
|
||||
<intExp>3</intExp>
|
||||
<intExp>4</intExp>
|
||||
</opExp>
|
||||
</instr_ecrire>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<opExp>
|
||||
et
|
||||
<intExp>3</intExp>
|
||||
<intExp>6</intExp>
|
||||
</opExp>
|
||||
</instr_ecrire>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<opExp>
|
||||
ou
|
||||
<intExp>3</intExp>
|
||||
<lireExp>
|
||||
</lireExp>
|
||||
</opExp>
|
||||
</instr_ecrire>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<opExp>
|
||||
et
|
||||
<intExp>3</intExp>
|
||||
<lireExp>
|
||||
</lireExp>
|
||||
</opExp>
|
||||
</instr_ecrire>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<opExp>
|
||||
ou
|
||||
<intExp>0</intExp>
|
||||
<lireExp>
|
||||
</lireExp>
|
||||
</opExp>
|
||||
</instr_ecrire>
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<opExp>
|
||||
et
|
||||
<intExp>0</intExp>
|
||||
<lireExp>
|
||||
</lireExp>
|
||||
</opExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
56
eval-final-projet/output/eval24.lex
Normal file
56
eval-final-projet/output/eval24.lex
Normal file
@@ -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
|
||||
192
eval-final-projet/output/eval24.mips
Normal file
192
eval-final-projet/output/eval24.mips
Normal file
@@ -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
|
||||
375
eval-final-projet/output/eval24.synt
Normal file
375
eval-final-projet/output/eval24.synt
Normal file
@@ -0,0 +1,375 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>3</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
<symbole>OU</symbole>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>4</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>3</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
<symbole>ET</symbole>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>6</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>3</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
<symbole>OU</symbole>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<mot_clef>lire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>3</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
<symbole>ET</symbole>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<mot_clef>lire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>0</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
<symbole>OU</symbole>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<mot_clef>lire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>0</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
<symbole>ET</symbole>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<mot_clef>lire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
5
eval-final-projet/output/eval24.tab
Normal file
5
eval-final-projet/output/eval24.tab
Normal file
@@ -0,0 +1,5 @@
|
||||
------------------------------------------
|
||||
base = 1
|
||||
sommet = 1
|
||||
0 main GLOBALE FONCTION 0 0
|
||||
------------------------------------------
|
||||
0
eval-final-projet/output/eval25.synt
Normal file
0
eval-final-projet/output/eval25.synt
Normal file
13
eval-final-projet/output/eval3-err.synt.xml
Normal file
13
eval-final-projet/output/eval3-err.synt.xml
Normal file
@@ -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
|
||||
19
eval-final-projet/output/eval3.asynt
Normal file
19
eval-final-projet/output/eval3.asynt
Normal file
@@ -0,0 +1,19 @@
|
||||
<prog>
|
||||
<l_dec>
|
||||
<varDec>$a</varDec>
|
||||
</l_dec>
|
||||
<l_dec>
|
||||
<foncDec>
|
||||
main
|
||||
<l_instr>
|
||||
<instr_ecrire>
|
||||
<opExp>
|
||||
fois
|
||||
<intExp>5</intExp>
|
||||
<intExp>2</intExp>
|
||||
</opExp>
|
||||
</instr_ecrire>
|
||||
</l_instr>
|
||||
</foncDec>
|
||||
</l_dec>
|
||||
</prog>
|
||||
16
eval-final-projet/output/eval3.lex
Normal file
16
eval-final-projet/output/eval3.lex
Normal file
@@ -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
|
||||
42
eval-final-projet/output/eval3.mips
Normal file
42
eval-final-projet/output/eval3.mips
Normal file
@@ -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
|
||||
77
eval-final-projet/output/eval3.synt
Normal file
77
eval-final-projet/output/eval3.synt
Normal file
@@ -0,0 +1,77 @@
|
||||
<programme>
|
||||
<optDecVariables>
|
||||
<listeDecVariables>
|
||||
<declarationVariable>
|
||||
<mot_clef>entier</mot_clef>
|
||||
<id_variable>$a</id_variable>
|
||||
<optTailleTableau>
|
||||
</optTailleTableau>
|
||||
</declarationVariable>
|
||||
<listeDecVariablesBis>
|
||||
</listeDecVariablesBis>
|
||||
</listeDecVariables>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</optDecVariables>
|
||||
<listeDecFonctions>
|
||||
<declarationFonction>
|
||||
<id_fonction>main</id_fonction>
|
||||
<listeParam>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<optListeDecVariables>
|
||||
</optListeDecVariables>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
</listeParam>
|
||||
<optDecVariables>
|
||||
</optDecVariables>
|
||||
<instructionBloc>
|
||||
<symbole>ACCOLADE_OUVRANTE</symbole>
|
||||
<listeInstructions>
|
||||
<instruction>
|
||||
<instructionEcriture>
|
||||
<mot_clef>ecrire</mot_clef>
|
||||
<symbole>PARENTHESE_OUVRANTE</symbole>
|
||||
<expression>
|
||||
<conjonction>
|
||||
<negation>
|
||||
<comparaison>
|
||||
<expArith>
|
||||
<terme>
|
||||
<facteur>
|
||||
<nombre>5</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
<symbole>FOIS</symbole>
|
||||
<facteur>
|
||||
<nombre>2</nombre>
|
||||
</facteur>
|
||||
<termeBis>
|
||||
</termeBis>
|
||||
</termeBis>
|
||||
</terme>
|
||||
<expArithBis>
|
||||
</expArithBis>
|
||||
</expArith>
|
||||
<comparaisonBis>
|
||||
</comparaisonBis>
|
||||
</comparaison>
|
||||
</negation>
|
||||
<conjonctionBis>
|
||||
</conjonctionBis>
|
||||
</conjonction>
|
||||
<expressionBis>
|
||||
</expressionBis>
|
||||
</expression>
|
||||
<symbole>PARENTHESE_FERMANTE</symbole>
|
||||
<symbole>POINT_VIRGULE</symbole>
|
||||
</instructionEcriture>
|
||||
</instruction>
|
||||
<listeInstructions>
|
||||
</listeInstructions>
|
||||
</listeInstructions>
|
||||
<symbole>ACCOLADE_FERMANTE</symbole>
|
||||
</instructionBloc>
|
||||
</declarationFonction>
|
||||
<listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</listeDecFonctions>
|
||||
</programme>
|
||||
6
eval-final-projet/output/eval3.tab
Normal file
6
eval-final-projet/output/eval3.tab
Normal file
@@ -0,0 +1,6 @@
|
||||
------------------------------------------
|
||||
base = 2
|
||||
sommet = 2
|
||||
0 $a GLOBALE ENTIER 0 -1
|
||||
1 main GLOBALE FONCTION 0 0
|
||||
------------------------------------------
|
||||
16
eval-final-projet/output/eval4-err.synt.xml
Normal file
16
eval-final-projet/output/eval4-err.synt.xml
Normal file
@@ -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é
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user