EVAL FINAL ESAYYYYYYY

This commit is contained in:
2016-04-19 11:58:53 +02:00
parent 69f4de0a90
commit 4841633f92
60 changed files with 4031 additions and 7634 deletions

View File

@@ -1,401 +1,108 @@
<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>
.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