Ash
Un langage de script simple et concis avec support pour l'orienté objet.
Sommaire
- Introduction
- Noyau du langage
- Installation
- Premier programme
- Commentaires
- Constantes et variables
- Expressions et instructions
- Types de base
- Booléen
- Entier et réel
- Chaîne
- Liste
- Dictionnaire
- Contrôle du flux
- Séquence
- Sélection
- Boucle
- Fonctions et procédures
Classes et objets
Gestion des erreurs
Bibliothèque standard
- + Console
- Fichiers
- Système d'exploitation
- Implémentations et interfaces
- Ash/Python
- Ash/JavaScript
- Ash/C
Introduction
1. Noyau du langage
1.1 Installation
Pour lancer coder avec Ash, il existe trois façons :
- Via l'interpréteur interactif en lançant ash.exe sans argument. La forme générale est ash.exe [arguments] [script] [arguments du script]. L'invite de commande >>> apparaît et on peut directement écrire à la suite des instructions et des expressions qui seront immédiatement évaluées. Il faut taper exit pour sortir de l'interpréteur. Si voulez exécuter un script depuis l'interpréteur, il faut employer la fonction exec('chemin du script') qui exécutera le script dans l'espace de noms actuels. Pour exécuter directement une ligne utiliser l'option -e puis entre guillemets le code.
ash.exe
- Via l'exécution d'un script, stocké dans un fichier .ash (ex : pipo.ash). On lance ash.exe en passant le chemin vers le ficher en paramètre. Si vous voulez utilise l'interpréteur à la suite de cette exécution, il faut utiliser l'option i. On peut passer des arguments au script après celui-ci.
ash.exe pipo.ash
ash.ex -i pipo.ash
- Via l'exécution d'un script, stocké dans un fichier .ash, qu'on transpile en Python à l'aide de ash.exe. On exécute ensuite le script Python produit à l'aide de l'interpréteur Python.
ash.exe -transpy pipo.ash python pipo.py
Les arguments sont stockés dans une liste. 0 est le nom du script. En nég, les options préalables. En pos, les options du script.
1.2 Premiers programmes
La tradition veut qu'on affiche "Bonjour le monde !" sur la sortie standard. Pour cela, il faut lancer l'interpréteur interactif
ash.exe
Puis tapez :
writeln("Hello World!")
Une autre tradition est le calcul d'une factorielle. Ouvrez un fichier texte, enregistrez-le sous le nom de fact.ash puis tapez dedans :
-- fonction factorielle récursive fun fact(nb : int) if nb == 0 then return 1 elif nb > 0 then return nb * fact(nb - 1) else raise Exception("Invalid number") end end nb = input('enter a number:') writeln(fact(nb))
1.3 Commentaires
-- comment --[[ start of multi line ]] end of multi line
1.4 Constantes et variables
nom de variable : (@/_A-Za-z)(0-9A-Za-z)
_ is for dummy variable or the last expression. utf-8 variable are supported.
following word are reserved because they are keyword.
Ash is case sensitive.
defined?(tst) --> nil tst = nil --> variable defined with value if tst is nil then writeln('tst is nil') end tst = 22 writeln(tst) --> 2
A variable is automatically cleaned after its containing scope is destroy (function or prog body).
1.5 Expressions et instructions
Séparateurs d'expression : \n, ;
2. Types de base
2.1 Booléen
2.2 Entier et réel
2.3 Chaîne
2.4 Liste
2.5 Dictionnaire
3. Contrôle du flux
3.1 Séquence
Un bloc est un ensemble d'instructions ou d'expressions. Les instructions et expressions sont séparées par des nouvelles lignes ou des points virgules.
a = 1 + 4 2 -- valide a = 1 + 4 ; 2 -- valide (équivalent aux 2 lignes du dessus) a = 1 + 4 2 -- ceci n'est pas valide en ash