package baguette_sharp
Install
Dune Dependency
Authors
Maintainers
Sources
md5=e4574ad962a4e2c4216a0ce94a59c079
sha512=762c34c41962d53236c42ef7c56bf52b74bef3099726e2c7622437fb3109978ee6db5be8a40752b26acb6275a22e4427dea4a67bd39d3ca05241942fd12fc654
Description
The REPL for Baguette#
Published: 16 Mar 2022
README
README.md
The Baguette# OCaml Interpreter
Baguette# est de retour..... En OCaml !
Pré-requis
Ocaml version >= 4.13.1,modules fmt,str et linenoise ( pour le REPL )
opam install fmt str linenoise
Histoire
J'ai repris ce projet début 2022, il sert de TIPE ENS et Tétraconcours ( je suis en prépa ) pour illustrer la théorie des langages formels de manière plus ludique, pour sa manière ludique de jouer avec... des pâtisseries!
Le parser est fini, il sert à transformer la liste de token en un arbre de syntaxe abstraite ( AST en anglais ) qui va permettre d'interpréter le langage après, l'algorithme s'occupe de transformer une liste en un arbre avec les fonctions/opérateurs et leurs arguments ( qui peuvent aussi être des fonctions ) ainsi que l'interpréteur qui prend l'AST et interprète le langage, le travail porte maintenant sur la partie théorique (turing-completeness) et la partie compilateur.
La syntaxe est proche du BASIC mais sans les boucles explicite ( on peut les faire... mais il faut vous débrouiller ;) )
Support
Actuellement l'interpréteur supporte les entier, les flottant, les chaînes de caractères, les booleans, les conditions simple, le retour à une ligne antérieure/postérieure et les if/else et implémente les fonctions standard précédemment implémentées dans la version en GO La grammaire est identique, chaque mot/symbole est séparé d'un espace et chaque symbole et fonction ont un nom de pâtisserie/viennoiserie/sucrerie française ou non.
Les keywords sont simple (voir le WIKI) et ne sont pas suivi de parenthèse ( comme le LABEL par exemple )
Installation
dune install
Utilisation
dune exec baguette_sharp_interpreter
Test
dune runtest
Voir le WIKI ( en anglais ) pour des informations plus détaillées