- OCaml 62.1%
- PureScript 24.5%
- C 6.1%
- Shell 4.2%
- Standard ML 2.5%
- Other 0.6%
| .github/workflows | ||
| iris@c512654563 | ||
| prt | ||
| src | ||
| test | ||
| .editorconfig | ||
| .gitignore | ||
| .gitmodules | ||
| .ocamlformat | ||
| dune | ||
| dune-project | ||
| Makefile | ||
| README.md | ||
MiniPureScript
IMPORTANT: Le code produit par le compilateur a besoin d'une librarie d'exécution implémenté en C (elle se trouve dans PRT, PureScript RunTime). Il suffit de passer l'argument
-Lprt/ -lprtà GCC, ou simplementprt/libprt.a. Sinon, il est possible d'utiliser les options-eou-cdu compilateur MiniPureScript pour qu'il appelle lui-même GCC.
Documentation du compilateur
Pour exécuter un fichier `test.ppurs``, il suffit de taper :
./ppurs -e test.ppurs
Ceci générera un fichier assembleur temporaire (dans /tmp), appelera GCC dessus, et exécutera le code à la volée.
Sinon, si aucun argument n'est donné, le compilateur affiche le code assembleur généré dans la sortie standard.
Il est aussi possible de générer un fichier executable (mais de ne pas l'exécuter directement) avec l'option -c. Le compilateur se charge d'appeler GCC en interne tout seul.
Compilation du compilateur
Le projet utilise dune pour sa compilation. Il suffit d'exécuter la commande dune build.
Toutefois, pour simplifier la compilation, un fichier Makefile est aussi fourni :
make: compile le compilateur et genére le programppursmake clear: nettoie les fichiers préalablement générés parmake
Test
Le dossier test contient de nombreux tests provenant principalement du sujet, mais pas que.
Il est possible d'exécuter les tests en utilisant les commandes suivantes :
make test-syntax: execute les tests de syntaxemake test-typing: execute les tests de typagemake test-exec: execute les tests de génération de codemake test: execute tous les tests