Note : Ce projet a été réalisé avec la version 1.36
d'emscripten et la version 3.9
de LLVM.
Vous trouverez dans ce répertoire deux sous-répertoires. Le premier p5-libraries
contient toute la bibliothèque p5 et sera exploité par les sorties d'Emscripten.
Dans le répertoire src/sources
vous pourrez trouver toutes les sources de notre compilateur,
ainsi que les fichiers de tests (dans src/final-tests
). un Makefile est mis à votre disposition pour pouvoir
utiliser le compilateur.
L'éxecutable produit lors de la compilation, parse
, vous permettra de parser les fichier C. Si vous donnez l'option
-o
suivie d'un nom de fichier, il sortira le résultat dans ce fichier plutôt que dans le fichier par défaut output.ll
.
make
oumake all
: permet de compiler le compilateur. Produit l'exécutableparse
, à la racine du répertoiresrc
.make run [test name].c
: en remplaçanttest name
par le nom du test que vous souhaitez lancer, vous produirez un code llvm dans output.ll, correspondant au résultat de la compilation du test par notre compilateur.make compll [file].ll
: permet de lancer la compilation du llvm produit via l'outillli
, en passant en paramètrefile
le nom du fichier à prendre.make emcc [file].ll
: permet de compiler à l'aide d'emcc
un fichier.ll
donné en paramètre. Ceci produit un fichierfoo.js
résultant de la compilation. Par ailleurs il faut noter que nous avons par défaut mis les fonctionsmy_draw
etmy_setup
à exporter. Si vous souhaitez exporter d'autres fonctions il sera nécessaire de ne pas utiliser le raccourci crée par ce makefile.make clean
: permet de "nettoyer" le répertoire des fichiers compilés et intermédiaires de compilation.
Voici la liste (exhaustive) des tests que vous pouvez lancer, et que vous trouverez dans src/final-tests
- boucles
- errors
- fibonacci
- ifAndFunction
- simple
- warnings
Tests impliquant l'utilisation de p5 : (et donc d'emcc)
- get_started_p5
- get_started_advanced
- example_code_ex
- example_code_mandelbrot
- Tout d'abord, assurez vous d'avoir bien compilé le compilateur : placez vous dans le répertoire
src
. Puis faites :make all
. - Ensuite, compilez le fichier de tests que vous souhaitez :
make run [votrefichier].c
. - Vous pourrez alors voir dans
output.ll
le résultat de la compilation. Pour le tester via le makefile avec le programmelli
, faites :make compll [votrefichier].ll
. Ici votre fichier sera doncoutput
. Vous aurez alors d'affiché le code de retour du programme.
==> Cas particulier : compilation et test avec la bibliothèque p5.js
Plutôt que d'utiliser make compll
utilisez make emcc [votrefichier].ll
où votre fichier sera
vraisemblablement output
. Firefox s'ouvrira alors avec le résultat de la compilation. Par exemple utilisez make run get_started_p5.c
suivi
de make emcc output.ll
pour tester le résultat de la compilation de ce fichier.