package baguette_sharp

  1. Overview
  2. Docs
The Baguette# Interpreter REPL

Install

Dune Dependency

Authors

Maintainers

Sources

2.0.4.tar.gz
md5=e4574ad962a4e2c4216a0ce94a59c079
sha512=762c34c41962d53236c42ef7c56bf52b74bef3099726e2c7622437fb3109978ee6db5be8a40752b26acb6275a22e4427dea4a67bd39d3ca05241942fd12fc654

Description

The REPL for Baguette#

Published: 16 Mar 2022

README

README.md

The Baguette# OCaml Interpreter

coco33920 - ocaml-baguettesharp-interpreter GitHub release License


Baguette#
Baguette#

Contact - Mail

b#

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

Dependencies (4)

  1. linenoise >= "1.3.1"
  2. fmt >= "0.7.0"
  3. ocaml >= "4.13.1"
  4. dune >= "3.0" & < "3.13"

Dev Dependencies (1)

  1. odoc with-doc

Used by

None

Conflicts

None