Skip to content

Un interpreteur pour des scripts écrits en français (High Level Humain Machine Language)

License

Notifications You must be signed in to change notification settings

freddycoder/HLHML

Repository files navigation

HLHML

Un interpreteur pour des scripts écrits en français (High Level Humain Machine Language)

Exemple de script

a vaut 5.
b vaut 7.

Afficher a " + " b " = ? ".

Lire la reponse.

Si la reponse est égal à a + b, afficher "Bonne réponse!" sinon afficher "Mauvaise réponse".

Sortie

5 + 7 = ? 

L'utilisateur tape sa réponse

5 + 7 = ? 12

Le programme affiche

5 + 7 = ? 12
Bonne réponse!

Lexique

Visiter la documentation

Générer l'image de l'arbre syntaxique

Selon le script suivant :

i vaut 0.
Tant que i est plus petit que 3,
i = i + 1.
Si i est égal à 3, afficher i " ".
Ensuite, afficher i

En appelant l'executable en ligne de commande :

HLHML.exe monScript.fr -t imageDestination.bmp

Le programme va produire l'image suvante impossible de trouver l'image...
Executer le même script en ligne de commande (projet HLHML.Console)

HLHML.Console.exe monScript.fr

La sortie sera

3 3

HLHML.Editor

Le projet HLHML.Editor est une application WinForm qui permet de visualiser l'arbre syntaxique en même temps que d'écrire son script.

HLHML.Syntaxe

Le repertoire HLHML.Syntaxe contient une extension vscode pour colorer les fichiers avec l'extension .fr

Utiliser l'interpreteur dans une application tiers

  1. Installer le package nuget.
  2. Utiliser la classe Interpreteur pour interpreter du code.
using var sw = new StringWriter();
var interpreteur = new Interpreteur(sw);
interpreteur.Interprete("Afficher \"Bonjour le monde !\"");
Console.Out.WriteLine(sw.ToString());
// Bonjour le monde !

Une instance de la classe Interpreteur garde la même 'Scope' pour les variables. Donc lancer deux script, ou deux commandes avec une même instance peut avoir des résultats différents selon le script.

About

Un interpreteur pour des scripts écrits en français (High Level Humain Machine Language)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages