Modalités de rendu (non contractuelles)
=======================================
Date de rendu: 24/01/2003 12h00
Groupe de News: epita.cours.compile
Sujet de mail Yaka [T0]
Repertoire de rendu: ~/rendu/tiger
Droits sur le rep et les exos : 705 sur les répertoires,
604 pour les fichiers,
au moins 701 sur ~
Votre répertoire de rendu doit contenir le fichier login-evalexp.tig
(où `login' est votre login).
Les informations ci-dessus peuvent changer jusqu'au 23/01/2003 12h00.
Sujet
=====
Cet exercice a pour but de vous familiariser avec la syntaxe du tiger.
Il vous permettra par ailleurs de mettre en oeuvre les cours de
compilation pour réaliser un parseur LL.
Exercice
========
Le but de cet exercice est donc de réaliser un EvalExp en Tiger. Pour
ce faire, vous devez dans un premier temps parser l'entrée standard
(un parseur LL est conseillé) puis afficher l'expression parenthésée
suivie du résultat.
Il vous faudra gérer les opérateurs binaires +,-,*,/ et les opérateurs
unaire + et -
Il vous faudra par ailleur gérer les parenthèses.
En cas d'erreur vous devrez afficher un message d'erreur puis quitter
avec la valeur de retour 1 sinon 0
Il n'est pas neccessaire de gérer les debordements, les calculs seront
de tailles raisonnables.
Votre programme sera automatiquement compilé et exécuté par un
programme fourni.
Exemple
-------
42sh>echo "-1+2*(3+4)" | ~yaka/tiger-interpreter evalexp.tig
((-1) + (2 * (3 + 4)))
13
42sh>
Lecture
=======
A. Appel, ¨Modern Compiler Implementation in {ML,C,Java}¨
http://www.lrde.epita.fr/~akim
|