if...else...
et les boucles while
.
Le compilateur que nous allons écrire engendrera du p-code, pouvant
être exécuté à travers une machine virtuelle.
Étude de programme
Téléchargez les fichiers suivants :
td6.lex, td6.y, td6-test, makefile
Compilez puis exécutez la commande suivante :
td6 td6-test
if
sont-elles gérées dans ce code?
Structures conditionnelles
Modifiez les programmes flex
et bison
de façon à autoriser
le else
optionnel. Comme en C, vous devrez rattacher un else
au if
le plus
proche. Pour cela, vous utiliserez la commande %prec
qui permet
d'attribuer à une règle une priorité correpondant à un autre opérateur.
Blocs et stockage d'une valeur
Modifiez les programmes flex
et bison
de façon
à autoriser :
$
qu'on pourra accéder en
lecture et en écriture grâce à une instruction de la forme $ =
val;.
Boucles while
Modifiez les programmes flex
et bison
de façon à pouvoir utiliser des
boucles while
.
Boucles while
Modifiez les programmes flex
et bison
de façon
à pouvoir gérer séparément des expressions numériques et des
expressions booléennes (seules les expressions numériques pouvant être
sauvegardées dans $
). Gérez les différents opérateurs
arithmétiques et de comparaison.